[Hibernate] Как сделать FK на часть composite PK?

pitrik2

табличка Parent
PK: [id1, id2]
табличка Child
PK: [idd1, idd2, idd3]
FK: [idd1, idd2] -> Parent[id1,id2]
не могу никак сообразить как правильно написать @OneToMany и @ManyToOne чтоб в обе стороны
по идее самое простое:

class Child {

@Id
@ManyToOne
@JoinColumns({
@JoinColumn(name = "idd1", referencedColumnName = "id1"
@JoinColumn(name = "idd2", referencedColumnName = "id2")
})
public Parent getParent;


@Id
public String getIdd3;
}

но так не работает :(

pitrik2

в гугле полно каких-то хаков
которые в одной версии hibernate-annotations а в другой не работают
большинство советуют не использовать составные ключи вообще
гадство :(

anton7805

да hibernate то еще задротство... Даже вызвать native процедуру представляет собой проблему. Нужно чтоб она обязательно resultset возвращала.
Вообще в O/R mapping всегда были и есть траблы с составными ключами.Выход без геморой, таки создавать ID к каждой табличке

Hastya

Это вроде как делается через property-ref.
Но как это сделать аннотациями, я не знаю. Аннотации вообще в данном случае только мешают.

pitrik2

люди, помогайте
я совсем запутался :(
Оставить комментарий
Имя или ник:
Комментарий: