2012-02-10 54 views
0

我想在Play中删除一个对象!但我收到此错误:在Play中删除@OneToMany关系中的JPA对象!框架

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项只是指向空的,而不是一个JumpSession。下面是我使用删除对象的简单代码:

JumpSession jumpSession = JumpSession.findById("blah"); 
jumpSession.delete(); 

编辑: UserJump的相关部分:

@Entity 
public class UserJump extends Model{ 

@ManyToOne 
public JumpSession jumpSession; 
} 

有一个UserJump仍使其具有唯一性的许多其他作品即使没有JumpSession。有没有办法让jumpSession参考为null

编辑: 我要打开一个新的问题,因为我的问题已经改变。当前的答案符合原始问题。

+0

什么UserJump样子删除对jumpSession参考? JumpSession或UserJump类有没有其他限制?有更多的ConstraintViolationException stacktrace吗? – digiarnie 2012-02-11 22:04:11

回答

0

你的用户跳转仍然有对jumpSession的引用。首先删除userJumps将解决问题。

如果你想保持UserJumps某些原因,那么你需要从userJumps

+0

但是,有没有办法只允许UserJump中'null'引用? – Indigenuity 2012-02-13 17:14:49