2012-02-10 85 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