Решение 1
Създайте изглед на база данни в Table1 което разкрива външния ключ, препращащ Table2 . Проектирайте външния ключ от вашата публикувана заявка, която така или иначе ще използвате за изгледа. След това съпоставете обекта си с изгледа.
Решение 2
Използвайте формула за присъединяване :
Например в обекта, съпоставен с Table1 дефинирайте асоциацията много към едно с обекта, съпоставен с Table2 (изглежда, че е вашият случай на употреба):
@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(example@sqldat.com(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).