В данный момент я застрял в следующей ситуации:
Когда мой проект JSF-JPA загружается впервые, он автоматически создает пользователя-администратора и присваивает ему userType admin:
User user = new User();
UserType userType = new UserType();
user.setUsername("admin");
user.setPassword("admin");
userType.setName("admin");
user.setUserType(userType);
create(user);
return user;
Таким образом, этот код создает пользователя и тип пользователя в базе данных.
Однако, когда я хочу назначить userType пользователю во время выполнения моего проекта, я получаю ошибку «Transaction Aborted»со следующим Stacktrace
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(domein.UserType@1751967)
Код выглядит следующим образом
@JoinColumn(nullable=false)
@OneToOne(cascade = {CascadeType.PERSIST})
protected UserType userType;
Если уже пробовал все другие различные типы CascadeType, но ни один из них не поддерживал обе вещи, которые я хочу сделать ...