Java 如果存在相关实体,则防止删除实体
我正在使用JPA2+Hibernate4,并在模型实体上实现一些CRUD操作 现在,当数据库中存在相关实体(Java 如果存在相关实体,则防止删除实体,java,hibernate,jpa,persistence,Java,Hibernate,Jpa,Persistence,我正在使用JPA2+Hibernate4,并在模型实体上实现一些CRUD操作 现在,当数据库中存在相关实体(EntityA)时,我需要防止删除某个实体(EntityB): @Entity public class EntityA { @Id private int id; @OneToOne(mappedBy = "entityA", optional = false, fetch = FetchType.LAZY) private EntityB entity
EntityA
)时,我需要防止删除某个实体(EntityB
):
@Entity
public class EntityA {
@Id
private int id;
@OneToOne(mappedBy = "entityA", optional = false, fetch = FetchType.LAZY)
private EntityB entityB;
//...
}
@Entity
public class EntityB {
@Id
private int id;
@OneToOne
@JoinColumn(name = "id")
private EntityA entityA;
//...
}
是否有任何方法可以使用关系选项来实现这一点,或者在删除EntityB
之前,我是否应该检查dao/存储库中是否存在EntityA
注意对于
@manytone
关系,我也需要这个。我认为你不能用注释来解决这个问题。您应该在之前手动检查相关实体是否存在。如果您想在代码中防止出现这种情况,而不只是删除该实体(通过手动检查)。对于注释,不可能做到这一点
另一方面,在我看来,这似乎需要DB约束。如果这些实体已经相关,那么只需添加外键约束(如果不存在)。如果没有,则考虑添加一个
PS:如果您已经有关系,请检查CascadeType.REMOVE设置。同意DB约束+1.请CascadeType.REMOVE删除这一行,它不适合,因为它只是删除了对相关字段的引用…是的,我认为设置DB约束对我来说是正确的方法。非常感谢。