我对提出这个问题所需的条款有点不熟悉,但我们会看看能否做到这一点。
我有一个JPA实体,代表几个其他实体的加入,称为UserJump:
@Entity
public class UserJump extends Model{
@ManyToOne
public User user;
@ManyToOne
public JumpSession jumpSession;
@ManyToOne
public Parachute parachute;
}
我有一个JumpSession类,它引用了UserJump:
@Entity
public class JumpSession extends GenericModel{
@OneToMany(mappedBy="jumpSession")
public List<UserJump> userJumps;
}
但是,我需要能够删除JumpSession
个对象,同时保留引用它们的任何UserJump
个对象(当我呼叫ConstraintViolationException
时,我现在得到delete()
在JumpSession
)上,因为UserJump
对象仍然将其他唯一信息链接在一起。理想情况下,jumpSession
中的UserJump
变量将更改为null
。
我该怎么做?
答案 0 :(得分:0)
您只需在删除JumpSession之前修改UserJump:
for (UserJump uj : jumpSession.getUserJumps()) {
uj.setJumpSession(null);
// now the UserJump doesn't reference the soon-to-be-deleted JumpSession anymore
}
session.delete(jumpSession);
(注意:以上是传统的Java Hibernate代码。我不知道如何以Play的方式进行翻译)