2016-09-22 7 views
1

は私の二つのクラス選択クエリ:以下

@Entity
@Table(名前は=「ユーザー」)
パブリッククラスユーザー{

です
@Id 
@Column(name="users_id") 
private String userId; 

@Column(name="uname") 
private String userName; 

@OneToMany(cascade=CascadeType.ALL) 
@JoinColumn(name="users_id") 
private Set<Address> addresses; 

getters & setters 

}

@Entity
@Table(名= "アドレス")
パブリッククラス住所{

@Id 
@Column(name="address_id") 
private String addressId; 

@Column(name="City") 
private String City; 

@ManyToOne 
private User user; 

setters & getters 

}

ユーザとアドレスは、単一のユーザが複数のアドレスを有することができる2つのテーブルです。 userIDは、これら2つのテーブル間の共通の列です。

ここで、ユーザーの詳細とそのユーザーに関連するすべてのアドレスを取得し、それに応じてBeanのリストを作成するための選択クエリを作成します。

お願いします。 ありがとうございます。

答えて

0

私はあなたがJPA EntityManagerではなく、休止状態のセッションを使用していると仮定しています。 このクエリは、対応する住所が記入されたID「123」のユーザーを返します。

Query query = session.createQuery("select user from User user left join fetch user.addresses where user.userId = :userId"); 
query.setParameter("userId", "123"); 
User user = (User) query.uniqueResult();