У меня есть к столуJPA: присоединиться к колонке на основе некоторого условия
table A : personID, name, someOtherColumns (personID is primarykey)
table B: personAliasID, personID, personAias, someOtherColumns (personAliasID is primary key)
один человек может иметь Muliple персоналии. Что я хочу сделать, так это получить таблицу A на основе personID и определенного лица. Объект A также должен иметь поле B b экземпляра (как показано ниже), чтобы я мог получить доступ к информации в объекте B для этого человека.
вот мой код
@Entity
@Table(name="A")
public class A implement Serializable {
...
...
//find the column in B where personAlias="someName"
@PrimaryKeyJoinColumn(name="personID", referencedColumnName = "personID"
private B b;
}
Как я могу это сделать?
Спасибо. с этим namedquery, я могу получить объект a. как я могу получить доступ к этому псевдониму и другой информации, хранящейся в таблице B? – neo
Вы можете использовать 'em.find (B.class, pkey)' см. Http://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#find(java.lang.Class, java .lang.Object) – cmd
Или класс A может ссылаться на B с помощью OneToMany (mappedby = "person"), делая отношения двунаправленными. Вы использовали бы коллекцию в A для этого, так как она может содержать много B или псевдонимов. – Chris