私は Hibernate 4.3(xml スタイル) を使用する初心者であり、pojo 要素だけでなくクエリを実行する方法に行き詰まっています。つまり... (次の例を参照)
Person と Address の 2 つのテーブルがあります。テーブル Person には、アドレスを参照する外部キー 'id_adress_fk' があります。テーブル アドレスには、主キーとして「id」、属性として「Adress_Street_Name」があります。1 人の参加者が持つことができるアドレスは 1 つだけです。一つの住所に何人か住んでいます。2 つの Pojos クラスを作成します。
データベースに Person 属性と Address Street Name を要求しようとしています。しかし、住所ストリート名を取得できません。どのオブジェクトが返されるのか、返される適切なオブジェクトに一致する適切なクエリを作成する方法がわかりません。Address と Person を結合する必要がありますか? しかし、この場合、返されるオブジェクトは何でしょうか? どうすればこれを処理できますか?
どうもありがとう。
私のポジョ:
public class Person implements Serializable {
private Integer id;
private Adress adress;
// getters and setters
public class Adress implements Serializable {
private Integer id;
private Set<Person> persons = new HashSet<Person>(0);
// getters and setters
私のマッピング:
アドレス.HBM.XML
<set name="persons" table="person" inverse="true" lazy="false" >
<key>
<column name="id_adress_fk" not-null="true" />
</key>
<one-to-many class="com.you.know.what.Person" />
</set>
PERSON.HBM.XML
<many-to-one name="adress" class="you.know.what.Adress" >
<column name="id_adress_fk" not-null="true" />
</many-to-one>
私のクエリ(たとえば):
List<Person> allPerson = getSessionFactory().getCurrentSession().createQuery( "from Person ").list();
Pojo Person だけを照会していることはわかっていますが、Adress オブジェクトは Person に「含まれている」ため、Adress_street_name を取得することに成功する必要があります...これに関する手は素晴らしいでしょう!