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,但没有他们的支持这两个我想要做的事情......