【发布时间】:2012-02-10 21:49:12
【问题描述】:
我正在尝试删除 Play 中的一个对象!但我收到此错误:
PersistenceException occured : org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
我的猜测是我在里面声明的@OneToMany 关系有问题。不过,我不确定。这是我的实体的声明:
@Entity
public class JumpSession extends GenericModel{
public JumpSession()
{
sessionUID = java.util.UUID.randomUUID().toString();
}
//***********JPA relationships
@Id
public String sessionUID;
@OneToMany(mappedBy="jumpSession")
public List<UserJump> userJumps;
@ManyToOne
public User jumpMaster;
//**********end JPA relationships
public String inspectorUID;
public String packDetailUID;
public String aadsn;
public String aadType;
public String dropzone;
public String jumpType;
public String sessionName;
@As("MM/dd/yyyy")
public Date createdOn;
@As("MM/dd/yyyy")
public Date jumpDate;
public String startNotes;
public String endNotes;
public String notes;
public String startTime;
public int status;
}
当我删除 JumpSession 时,我需要 UserJump 条目仅指向 null 而不是 JumpSession。这是我用来删除对象的简单代码:
JumpSession jumpSession = JumpSession.findById("blah");
jumpSession.delete();
编辑: UserJump的相关部分:
@Entity
public class UserJump extends Model{
@ManyToOne
public JumpSession jumpSession;
}
即使没有 JumpSession,UserJump 的许多其他部分仍然使其独一无二。有没有办法让jumpSession 引用成为null?
编辑: 我将就此提出一个新问题,因为我的问题已经改变。当前答案符合原始问题。
【问题讨论】:
-
UserJump 是什么样的? JumpSession 或 UserJump 类是否有任何其他限制? ConstraintViolationException 堆栈跟踪还有更多内容吗?
标签: jpa playframework persistence