Решение 1
Създайте изглед на база данни в Table1
което разкрива външния ключ, препращащ Table2
. Проектирайте външния ключ от вашата публикувана заявка, която така или иначе ще използвате за изгледа. След това съпоставете обекта си с изгледа.
Решение 2
Използвайте формула за присъединяване :
Например в обекта, съпоставен с Table1
дефинирайте асоциацията много към едно с обекта, съпоставен с Table2
(изглежда, че е вашият случай на употреба):
@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
})
private Entity2 entity2;
Въпреки това формулите за присъединяване изглеждат много крехки в Hibernate за момента (успях да направя това да работи само за асоциация много към едно и трябваше да направя Entity2
имплементирайте Serializable
; в противен случай не работи и хвърли някакъв странен NullPointer-
и ClassCastException
s).