Java “休眠设置约束”;“关于更新级联”;

Java “休眠设置约束”;“关于更新级联”;,java,postgresql,hibernate,jpa,cascade,Java,Postgresql,Hibernate,Jpa,Cascade,如果您想使用带有ON DELETE级联的外键,可以在hibernate中使用@OnDelete注释。它强制hibernate为具有适当外键约束的表生成DDL 我现在寻找的是一种可能,告诉hibernate使用更新级联创建一个约束。不幸的是,hibernate中没有@OnUpdate注释。 我如何告诉hibernate为带有外键更新级联约束的表生成DDL?可以使用@CASCADE注释吗 @Cascade(CascadeType.SAVED_UPDATE) 你能使用@Cascade注释吗 @Cas

如果您想使用带有ON DELETE级联的外键,可以在hibernate中使用
@OnDelete
注释。它强制hibernate为具有适当外键约束的表生成DDL

我现在寻找的是一种可能,告诉hibernate使用更新级联创建一个约束。不幸的是,hibernate中没有
@OnUpdate
注释。
我如何告诉hibernate为带有外键更新级联约束的表生成DDL?

可以使用@CASCADE注释吗

@Cascade(CascadeType.SAVED_UPDATE)

你能使用@Cascade注释吗

@Cascade(CascadeType.SAVED_UPDATE)

如果使用hibernate本机API,则应使用hibernate的注释进行级联,它是:

@Cascade(CascadeType.SAVED\u UPDATE)

然后调用save()方法,但在注释中,应该调用JPA的persist()方法 有关更多详细信息,请查看hibernate文档

下面是一些可能有用的级联操作

CascadeType.PERSIST:表示save()或PERSIST()操作 级联到相关实体

CascadeType.MERGE:表示相关 当所属实体处于托管状态时,实体将合并到托管状态 合并

CascadeType.REFRESH:对REFRESH()执行相同的操作 手术

CascadeType.REMOVE:删除所有相关实体 删除所属实体时与此设置的关联

CascadeType.DETACH:如果是“手动”,则分离所有相关实体 发生“分离”

CascadeType.ALL:是上述所有内容的简写 级联操作


如果使用hibernate本机API,则应使用hibernate的注释进行级联,它是:

@Cascade(CascadeType.SAVED\u UPDATE)

然后调用save()方法,但在注释中,应该调用JPA的persist()方法 有关更多详细信息,请查看hibernate文档

下面是一些可能有用的级联操作

CascadeType.PERSIST:表示save()或PERSIST()操作 级联到相关实体

CascadeType.MERGE:表示相关 当所属实体处于托管状态时,实体将合并到托管状态 合并

CascadeType.REFRESH:对REFRESH()执行相同的操作 手术

CascadeType.REMOVE:删除所有相关实体 删除所属实体时与此设置的关联

CascadeType.DETACH:如果是“手动”,则分离所有相关实体 发生“分离”

CascadeType.ALL:是上述所有内容的简写 级联操作


不幸的是,这对我没有帮助。我想要的是在hibernate创建表时获得正确的DDL。外键约束应该如下所示:更新级联上删除级联。当我使用您推荐的解决方案时,情况并非如此。我想使用数据库工具(pgAdmin)来修改行,因此我需要一个解决方案,hibernate在其中为外键创建具有正确约束的表。不幸的是,这对我没有帮助。我想要的是在hibernate创建表时获得正确的DDL。外键约束应该如下所示:更新级联上删除级联。当我使用您推荐的解决方案时,情况并非如此。我想使用数据库工具(pgAdmin)修改行,因此,我需要一个解决方案,其中hibernate为外键创建具有正确约束的表。更新主键通常不是一个好主意。更新主键通常不是一个好主意。不幸的是,当hibernate生成创建表DDL时,级联注释没有影响。级联注释不幸的是,hibernate生成创建表DDL时没有任何影响。