Pet*_*ter 3 java postgresql hibernate jpa cascade
我有一个表定义如下:
@实体 @桌子 @Inheritance(策略=InheritanceType.JOINED) 公共类表实现可序列化{ @ID @GenerateValue 私人长ID; ... }
然后我有一个继承表:
@实体 @桌子 公共类子表扩展表{ ... }
Hibernate 在我的 Postgres 数据库中正确创建了两个表,但它将两个表之间的删除操作定义为“无操作”。
我如何在 Hibernate 中定义我希望在删除时定义 CASCADE 操作?例如,当我手动从表Table 中删除一行时,我想自动获取表SubTable中要删除的相应行。当我现在尝试从表中删除一行时,它返回外键约束冲突错误。
如果您始终使用 Hibernate 来执行删除,Hibernate 可以处理级联删除。
因此,删除子表实体将会成功,并且还将删除子类表记录和关联的基类行。
如果你想使用 SQL 级别删除,假设你正在使用 hbm2ddl (你不应该这样做,因为你应该使用 Flyway),那么你需要SubTable
使用 @OnDelete 注释来注释:
@Entity
@Table
@OnDelete(action = OnDeleteAction.CASCADE)
public class SubTable extends Table {
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5480 次 |
最近记录: |