Сохранение объекта с составным ключом JPA @ManyToOne, используемым в качестве идентификаторов, добавляет дополнительный JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Сохранение объекта с составным ключом JPA @ManyToOne, используемым в качестве идентификаторов, добавляет дополнительный

Сообщение Гость »

Аналогично @ManyToOne. Ссылка на составной ключ в JPA. Это касается более старой версии Spring Boot с использованием Hibernate 5.6.
У меня есть три класса сущностей:

Код: Выделить всё

@Entity class A { Long getId(); ... }
@Entity class B { Long getId(); ... }

@Entity
@IdClass(ABPK.class)
@Data
class AB {
@Id
@Column(name="a_id", insertable=false, updatable=false)
private Long aId;
@Id
@Column(name="b_id", insertable=false, updatable=false)
private Long bId;
@ManyToOne
@JoinColumn(name="a_id")
private A a;
@ManyToOne
@JoinColumn(name="b_id")
private B b;
public AB() { }
public AB(A a, B b) {
this.a = a;
this.aId = a.getId();
this.b = b;
this.bId = b.getId();
}
}

@Data
class ABPK implements Serializable {
Long aId;
Long bId;
}
Когда я пытаюсь создать и сохранить его

Код: Выделить всё

var a = new A("a");
var b = new B("b");
var ab = new AB(a,b);
abDao.saveAndFlush(ab);
Я получаю самую странную ошибку

Причина: java.sql.SQLException: индекс параметра вне диапазона (3 > количество параметров, равное 2).

Сгенерированный им оператор вставки в журналах указан правильно.

Код: Выделить всё

Hibernate: insert into ab (a_id, b_id) values (?, ?)
Я запустил отладчик, и он, кажется, добавляет третье «поле» для сопоставления, хотя я ожидаю только два, первое из которых похоже на тип AB, а затем по A, а затем B.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -extra-par
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»