JPA / hibernate - 从db中删除级联

时间:2013-06-22 12:34:24

标签: hibernate jpa cascade

你好我有这样的情况:

具有2个字段的实体TAG ManyToMany包含2组对象(Obj1,Obj2)。当我删除Obj1时,我想删除在TAG实体中设置的Obj1中包含的所有信息。你能告诉我怎么做吗?


@Entity(name = "tag")
public class Tag {

    .....

@ManyToMany(fetch = FetchType.LAZY)
private Set<Checkpoint> checkpoints;

    ......
}

@Entity(name = "checkpoint")
public class Checkpoint implements Serializable {

            ......

}

检查点中没有对标签的引用。如果我将Cascade设置为ManyToMany,那么当我删除标签时,所有具有此标签的用户都将被删除。我想要的是删除检查点时删除tag_checkpoint表中的行。我应该自己做还是有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

如果ManyToMany进行级联删除,那么在@ManyToMany注释中设置cascade = CascadeType.ALL应该有效。如果没有,那么您可能需要考虑使用CascadeType.ALL分离为@OneToMany的多个用途(如果可能)。

答案 1 :(得分:0)

我刚刚自己从db中删除了对象。