Spring数据JPA Hibernate-java.sql.SQLException:无法添加外键约束

Spring数据JPA Hibernate-java.sql.SQLException:无法添加外键约束,hibernate,spring-data-jpa,Hibernate,Spring Data Jpa,完全错误是 org.hibernate.tool.schema.spi.CommandAcceptanceException:通过JDBC语句执行DDL“alter table ValidationStep add constraint FKkawiwe2rg1ar6xla3y4gen5aq外键(validationStepDraftGroup_id)引用validationStepDraftGroup(id)”时出错 这是关于ValidationStepDraftGroup到validatio

完全错误是

org.hibernate.tool.schema.spi.CommandAcceptanceException:通过JDBC语句执行DDL“alter table ValidationStep add constraint FKkawiwe2rg1ar6xla3y4gen5aq外键(validationStepDraftGroup_id)引用validationStepDraftGroup(id)”时出错

这是关于ValidationStepDraftGroup到validationStep的oneToMany映射。谢谢你的帮助

ValidationStepDraftGroup实体

 @Entity
 public class ValidationStepDraftGroup {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch=FetchType.LAZY)
@JoinColumn(name = "validationStepDraftGroup_id")
private List<ValidationStep> validationSteps;
// no cascade type, you shouldnt be able to modify a automationInformation by saving a ValidationStepDraftGroup
@ManyToOne
@JoinColumn(name= "automation_information_aId", referencedColumnName= "aId")
private AutomationInformation automationInformation;

private String lastUpdatedBy;

private Date lastUpdatedDate;
}
相关配置

spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

根据你评论中收集到的信息,我认为问题在于

请尝试在
ValidationStep
中的属性
type
中添加
@列
注释,然后再次测试它,好吗

例如:

@Enumerated(EnumType.STRING)
@Column(name = "validationType")
private ValidationType type;
更新

spring.jpa.hibernate.ddl-auto=create


您正在使用哪个数据库?H2?MySQL?@MatheusCirillo MySQL您能给我们看一下您的应用程序。属性内容吗?@MatheusCirillo added您能把这一行添加到您的属性中并再次测试吗
spring.jpa.hibernate.naming.physical strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
这个“DraftGroup”对象是一个新添加的对象,以前的ValidaionStep工作正常。所以我认为这意味着这不是问题?如果可以的话,测试一下。如果它不起作用,只需将更改放到相同的问题上。因此,仍然是相同的问题。我无法重现您的错误。你的模式对我有用。尝试将方言更改为
org.hibernate.dialogue.mysql5innodbdialogue
org.hibernate.dialogue.mysql8innodbdialogue
。两者都测试
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.ddl-auto=update