2017-01-27 2 views
1

Имея три объекта, которые вложены, скажем, A {b}, B {c}, C {id} Могу ли я использовать уникальную аннотацию ограничения JPA для доступа к идентификатору C на A?JPA Уникальное ограничение на вложенные объекты

Мой сценарий: у меня есть некоторые другие поля «г» на А, и я хочу навязываться, что «Z» и С в «идентификатор» однозначно связаны

ответ

0

запросов

Вы можете присоединиться к тем, таблицы без каких-либо изменений конфигурации с использованием сочетания стиля «старый». Она позволяет связать объекты по столбцам, которые не связаны непосредственно:

select a 
From A a, C c 
Where a.z = c.id 

Mapping

Если вы хотите изменить конфигурацию, попробуйте следующее:

public class C{ 

    @ManyToOne 
    @JoinColumn(name = "id", referencedColumnName = "z") 
    private A a; 

} 

public class A{ 

    @OneToMany(mappedBy = "a" 
    @JoinColumn(name = "z", referencedColumnName = "id") 
    private List<C> cCollection; 

} 
+0

сделал это работает для вас ? –

+0

согласны со старым решением, но я искал решение с использованием JPA-подхода. для второй части он работает действительно на объектах с прямой ссылкой, но мои вопросы заключались в том, можно ли получить доступ к полям для объектов, ссылки на которые вложены. E.I. есть промежуточный B между A и C. Спасибо! –

Смежные вопросы