1
我目前停留在以下情況:JPA - 級聯問題
當我的JSF - JPA項目啓動後的第一次,它自動創建一個管理員用戶,並給它的用戶類型管理員:
User user = new User();
UserType userType = new UserType();
user.setUsername("admin");
user.setPassword("admin");
userType.setName("admin");
user.setUserType(userType);
create(user);
return user;
因此,該代碼在數據庫中創建用戶和用戶類型。
然而,當我想我的項目的執行過程中指定的用戶類型的用戶,我得到一個「事務中止」錯誤與下面的堆棧跟蹤
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'admin' for key 'NAME'
Error Code: 1062
Call: INSERT INTO USERTYPE (NAME) VALUES (?)
bind => [1 parameter bound]
Query: InsertObjectQuery([email protected])
代碼看起來像這樣
@JoinColumn(nullable=false)
@OneToOne(cascade = {CascadeType.PERSIST})
protected UserType userType;
如果已經嘗試了所有其他不同CascadeTypes,但沒有他們的支持這兩個我想要做的事情......