簡體   English   中英

Hibernate將剩余對象從多對一關系中獲取

[英]Hibernate get remaining objects from many to one relation

我有一個存儲俱樂部和球隊的數據庫。 一家具樂部有多支球隊,而一支球隊只是一個俱樂部的一部分。 是否可以使用休眠條件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]   
}

應該是這樣的:

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

與上述答案略有不同,如果您已經擁有希望找到不屬於該俱樂部的所有球隊的俱樂部對象,則應該可以執行以下操作:

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

這樣可以避免查詢俱樂部名稱,IMHO是更干凈的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM