2012-01-19 15 views
1

私は永続性の世界に新しいです:)私の質問は非常に愚かであり、私のアプローチが間違っているかもしれないが、それは私がいくつかの専門家に尋ねたいものです。だから私の問題は、別のエンティティに関連するエンティティのクエリを書き込むことです。onetomanyの関係を持つ2つのエンティティのクエリ

@Entity 
public class Team { 
    String teameName, 
    int teamId, 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
    @JoinColumn(name = "team_id", referencedColumnName = "teamId") 
    private Set<Player> players; 
    /** 
    more code for getters and setter for all fields  
    */  
} 

@Entity 
public class Player { 
    String PlayerName, 
    String address 
    /** 
    *more code for getters and setter for everything  
    */ 
} 

ように、複数のプレイヤーが1つのチームに所属することができますが、すべてのプレーヤーはプレーヤーへの外部キーとしてteamIdを作って行われているユニークなチームを持っている必要があります。 私はこれが正しいはずだと思います。しかし、今問題が起こります。 "playerName = X"と "teamId = Y"のすべてのプレーヤーを検索するクエリを作成したい そして、私はどのようにこのようなクエリを書くのか分かりません。

誰かが私に何かを提案できますか?

ありがとうございます。

Jeena

答えて

2

あなたはread about HQLは、Hibernateクエリ言語にしたいです。それは、SQLのようなものです。

基本的には、hql stringを定義してからクエリを実行します。何かのように

String hql = "select * from Player p where p.PlayerName = :name and team = :team"; 
Query query = session.createQuery(hql); 
query.setParameter("name", "Joe"); 
query.setParameter("team", team); 
List list = query.list(); 
+0

ありがとうございましたあなたの助けとリンク。私はすぐに読み始めます。しかし、私はあなたがString hql = "player *からp.PlayerName =:nameとteamId =:teamId"を選択することを意味したと思います。そうじゃない? – Jeena

+0

Jeena、それはあなたがPlayerクラスでマッピングしたものです。親がチームの場合、それはチームオブジェクトです。休止状態がオブジェクトに作用することを忘れないでください。あなたが望むなら、あなたはチームのIDを試すことができます。ありがとう。 – hvgotcodes

+0

ありがとう。両方を試みます。 – Jeena

関連する問題