JPA дублирует столбец при вставке. Несколько столбцов в качестве первичного и внешнего ключаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPA дублирует столбец при вставке. Несколько столбцов в качестве первичного и внешнего ключа

Сообщение Anonymous »

JPA дублирует столбец при попытке вставки (столбец активен) и не вставляет значение ни в один из параметров.
Ошибка следующая:

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

could not execute statement [No value specified for parameter 6.]
[insert into payment_item
(account_id,x,y,active,payment_id,active,id)
values (?,?,?,?,?,?,?)]
DDL выглядит следующим образом (упрощенно для объяснения):

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

CREATE TABLE payment_item (
id BIGINT,
payment_id BIGINT NOT NULL,
active BOOLEAN NOT NULL DEFAULT true ,
PRIMARY KEY (id, active),
FOREIGN KEY (payment_id, active) REFERENCES payment (id, active)
) PARTITION BY LIST (active);
Отображение jpa:

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

public class PaymentItemKey implements Serializable {
private Long id;

private Boolean active = true;
}

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

@Entity
@Table(name = "payment_item")
@IdClass(PaymentItemKey.class)
public class PaymentItemEntity {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "payment_item_generator")
@SequenceGenerator(name = "payment_item_generator", sequenceName = "payment_item_seq", allocationSize = 1)
private Long id;

@Id
private boolean active = true;

@ManyToOne
@JoinColumns({
@JoinColumn(name = "payment_id", referencedColumnName = "id"),
@JoinColumn(name = "active", referencedColumnName = "active")
})
private PaymentEntity payment;

}
if работает, только если я удалю активный ключ из первичного ключа. Но это необходимо, поскольку я хочу разделить таблицу, используя активный столбец.
Обратите внимание: если я использую Embedded вместо IdClass, это выдаст ту же ошибку.

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

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

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

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

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

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

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