Сущности
Acc
@Entity
@JsonIgnoreProperties({"remoteId", "owner"})
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"uuid", "locale_id"}))
public class Acc extends SynchronizedEntity implements Limit.OwnerOfLimit {
private Long mId;
@ManyToOne
@JsonProperty("owner")
private User mOwner;
@JsonProperty("userId")
private String mUserId;
@JsonProperty("name")
private String mName;
@JsonProperty("cur")
@ManyToOne(cascade = CascadeType.ALL)
private Cur mCur;
@JsonProperty("accType")
@ManyToOne(cascade = CascadeType.ALL)
private AccType mAccType;
@JsonProperty("colorId")
private String mColorId;
@JsonProperty("rest")
private Float mRest;
@JsonProperty("order")
private Long mOrder;
@JsonProperty("limitOwner")
private String limitOwner;
Cur
@Entity
@Immutable
public class Cur extends BaseEntity {
@JsonProperty("iso")
private String mIso;
@JsonProperty("name")
private String mName;
@JsonProperty("use")
private String mUse = "N";
}
AccType
@Entity
@Immutable
public class AccType extends BaseEntity {
@JsonProperty("name")
private String mName;
@JsonProperty("ap")
private short mAp;
@JsonProperty("iconid")
private String mIconid;
}
REST
сервер (Spring
) обрабатывает запрос с объектом Acc и выполняет действие сохранение, обновления, помечает на удаление.
Я захотел сделать так, чтобы таблицы cur и AccType были справочниками (так-как в AccType всего 3 поля,а в Cur 160). Но теперь, когда я пытаюсь сохранить свежеприсланный обьект в бд через его DAO обычным методом save у меня вылетает ошибка , а именно
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement Caused by: org.postgresql.util.PSQLException: ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "cur_pkey" Подробности: Ключ "(id)=(2)" уже существует.
Как я понимаю hibernate пытается записать обьект в табличку cur и естественно не может это сделать, так как поле уже занято. НО суть в том, что он не должен создавать поле, а должен находить уже созданное в справочнике поле и в Acc добавлять его.
Есть ли какая-нибудь аннотация, которая запрещает запись и говорит ,что нужно искать по таким данных поле, а не создавать
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Данный вопрос возник из-за спо