Итак, я выполняю начальную загрузку, и когда он достигает условия сохранения, он выдает исключение
org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: уникальный индекс или нарушение первичного ключа: "PUBLIC.PRIMARY_KEY_4 ON PUBLIC.SYSTEMUSER (THEUSERNAME) ЦЕННОСТИ 1 ";Оператор SQL: вставьте в SystemUser (активный, createOn, деактивированный, электронная почта, firstName, lastName, pass, role_pk, version, theUsername) значения (?,?,?,?,?,?,?,?,?,?) [23505-199]
Я пытался выполнять ручные транзакции с транзакционным контекстом, чтобы избежать блокировок и слияний, но он все еще не работает.
Я думаю, что это может быть что-то в отображении.Вот мой класс:
@Entity
public class RiskAnalyst implements AggregateRoot<Username> {
@EmbeddedId
private Username idCode;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "theusername", referencedColumnName = "theusername", insertable = false, updatable = false)
private SystemUser systemUser;
@OneToMany
private List<RiskAssessmentCase> assignedCases;
public RiskAnalyst(SystemUser user) {
if (user == null) {
throw new IllegalArgumentException("Not enough data to create RiskAnalyst");
}
this.systemUser = user;
this.idCode = systemUser.username();
this.assignedCases = new ArrayList<>();
}
protected RiskAnalyst() {
//For ORM only
}