[英]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.