gpt4 book ai didi

java - 向现有 @Entity 添加新字段时出现 SQLException (jpa)

转载 作者:行者123 更新时间:2023-12-01 17:59:34 27 4
gpt4 key购买 nike

我有一个模型,例如如下所示:

import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Map;

@Entity
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Getter
public class MyTable {

@Id
long myId;

@NotNull
String myField_1;

@ElementCollection(fetch = FetchType.EAGER)
@NonNull
Map<Integer, BigDecimal> myField_2;
}

我在服务器上运行了它,应用程序(一个 Spring Boot 应用程序)使用这个表一段时间,我决定需要另一个字段:

    @ElementCollection(fetch = FetchType.EAGER)
@NonNull
Map<Integer, BigDecimal> myAdditionalField;

但是当我再次在服务器上运行该应用程序时,我遇到了这样的异常:

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table my_table_my_additional_field add constraint FK35gbk1v4oaclmxu6onjiopln0 foreign key (my_table_my_id) references my_table (my_id)" via JDBC Statement
...
Caused by: java.sql.SQLException: Can't create table `my_database_name`.`#sql-7f7_4531` (errno: 150 "Foreign key constraint is incorrectly formed")

为什么会发生这种情况以及如何向我的实体添加新字段?我有一个属性jpa.hibernate.ddl-auto: update。最有趣的部分是该字段及其“ map 集合”已正确添加到数据库中,只是这个新字段存在奇怪的约束错误

最佳答案

搜索该错误消息。

这是一个列出了一些选项的答案:https://stackoverflow.com/a/56976063/1766831

关于java - 向现有 @Entity 添加新字段时出现 SQLException (jpa),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60660709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com