2012-01-19 79 views
1

我是新來的持久世界:)可能是我的問題很愚蠢,可能是我的方法是不正確的,但那是我想問一些專家。所以我的問題是寫一個與另一個實體相關的實體的查詢。查詢兩個實體之間存在關係

@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  
    */ 
} 

那麼多球員可以屬於一個團隊,但每個球員都必須有一個獨特的團隊,與製作teamId作爲一個外鍵播放器來完成。 據我所知,這應該是正確的。但現在出現了這個問題。 現在我想查詢所有玩家的「playerName = X」和「teamId = Y」 我不知道如何編寫這樣的查詢。

請任何人都可以給我一些建議。

在此先感謝。

Jeena

回答

2

你想read about HQL,Hibernate查詢語言。它有點像SQL。

基本上你定義你的hql字符串,然後執行查詢。類似於

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 =「select * from Player p where p.PlayerName =:name and teamId =:teamId」;是不是? – Jeena

+0

Jeena,它是你在Player類中映射的任何東西。如果父母是一個團隊,那麼這是團隊對象。記得休眠對象的作品。如果你願意,你可以嘗試團隊ID。 – hvgotcodes

+0

謝謝。將嘗試兩個。 – Jeena

相關問題