Hibernate 5: OneToOne без @IdJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate 5: OneToOne без @Id

Сообщение Anonymous »

У меня есть класс Products, который имеет:

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

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "products_seq")
@SequenceGenerator(name = "products_seq", sequenceName = "products_seq", allocationSize = 1)
@Column(name = "PRODUCT_ID")
protected Integer productId;
он ​​также имеет: частные атрибуты Attributes; которые следует объединить @OneToOne с классом Attributes;
Проблема в том, что атрибуты не содержат собственного идентификатора. Это таблица с двумя столбцами ATTRIBUTE_ID и DATE. К сожалению, ATTRIBUTE_ID не является сгенерированным идентификатором, а совпадает с Product_id из класса Products.
Я пытался добавить в класс Products:

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

@OneToOne(mappedBy = "product", cascade = CascadeType.PERSIST)
private Attributes attributes;
и в классе атрибутов:

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

@Id
@GeneratedValue(generator = "foreign")
@GenericGenerator(name = "foreign", strategy = "foreign", parameters = @Parameter(name = "property", value = "product"))
@Column(name = "ATTRIBUTE_ID")
private Integer attributeId;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "attribute_id")
private Product product;
но я не думаю, что это правильное решение.
Я считаю, что таблица ATTRIBUTES также должна иметь идентификатор, но сейчас этого будет сложно добиться .
Есть ли правильный способ справиться с этой странной ситуацией?

Подробнее здесь: https://stackoverflow.com/questions/792 ... without-id
Ответить

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

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

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

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

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