2015-08-19 71 views
0

我有一個存儲俱樂部和團隊的數據庫。 一個俱樂部有多個球隊,一個球隊只屬於一個俱樂部。 是否有可能使用 休眠標準API來查詢不在特定俱樂部的所有球隊? 這裏是(剝離)Club.java和Team.java休眠獲得多對一關係的其餘對象

Club.java

@Entity 
@Table(name = "clubs") 
public class Club { 
    @Id 
    @GeneratedValue 
    @Column(name = "club_id") 
    private int id; 
    @Column(name = "name") 
    private String name; 
    @OneToMany(mappedBy = "club") 
    private java.util.Set<Team> teams; 

    [setters, constructors etc] 
} 

Team.java

@Entity 
@Table(name = "team") 
public class Team { 
    @Id 
    @GeneratedValue 
    @Column(name = "team_id") 
    private int id; 
    @Column(name = "name") 
    private String name; 
    @ManyToOne 
    @JoinColumn(name = "club_id") 
    private Club club; 

    [same here] 
} 
+0

你能跟我們分享一些現有的代碼嗎? JPA模型對象將非常有用。 –

+0

我編輯了我的帖子,感謝您看看它。 – Tiim

回答

1

正如上面的回答略有變化,如果你已經有了,你想找到不屬於它的所有球隊的俱樂部對象,你應該能夠做一些事情,如:

Criteria criteria = session.createCriteria(Team.class); 
criteria.add(Restrictions.ne("club", myClub)); 
List<Team> teams = criteria.list(); 

這避免了查詢在俱樂部名稱和恕我直言是更清潔的代碼。

1

應該是這樣的:

Criteria criteria=session.createCriteria(Team.class); 
     .createAlias("club", "c") 
     .add(Restrictions.not(Restrictions.like("c.name", "nameOfTheClubIAmLookingFor", MatchMode.EXACT))) 
     List<Team> teams=criteria.list();