У меня есть сущность User и сущность UserCompanyRole. UserCompanyRole имеет составной первичный ключ. Каждый пользователь может иметь несколько ролей. Я знаю, что следует избегать составных первичных ключей, и я фактически заменил их столбцом id, но мне все равно хотелось бы знать, проблема в моем коде или в Envers. Результатом приведенного ниже кода является ошибка во время запуска. Есть идеи, что не так?:
Вызвано: javax.persistence.PersistenceException: [PersistenceUnit:
default] Невозможно собрать Hibernate SessionFactory; вложенное исключение:
org.hibernate.MappingException: повторяющийся столбец в сопоставлении для объекта:
domain.usercompany.UserCompanyRole_AUD столбец: user_id (должен быть
сопоставлен с помощью Insert="false" update="false) ")
Файл User.java
@Audited(withModifiedFlag = true, modifiedColumnName = "user_company_roles_mod")
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "user_id", insertable = false, updatable = false)
@AuditMappedBy(mappedBy = "user")
private List userCompanyRoles = new ArrayList();
Файл UserCompanyRole.java
@EmbeddedId
private UserCompanyRoleId userCompanyRoleId;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("userId")
@Audited
private User user;
Файл UserCompanyRoleId.java
@Embeddable
public class UserCompanyRoleId implements Serializable {
@Column(name = "company_id")
private Long companyId;
@Column(name = "user_id")
private Long userId;
@Column(name = "role")
private String role;
Подробнее здесь: https://stackoverflow.com/questions/649 ... -many-side
Как настроить Envers с помощью @OneToMany и @EmbeddedId на стороне многих ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение