0
我有一個包含兩個表(城市,國家)和它們之間的兩個關係的數據庫。具有多個關係的表的休眠條件
第一個是「一個國家有多個城市」的關係。
select * from City inner join Country on(code=countrycode);
第二個是「一個國家有一個資本」關係。
select * from City inner join Country on(capital=id);
Hibernate標準適用於第一個關係,例如,
Criteria criteria = session.createCriteria(City.class);
List<City> = criteria
.createCriteria("countrycode")
.add(Restrictions.eq("continent", continent))
.list();
但我如何創建一個Hibernate標準來檢索首都清單?第二個關係是未映射的。 Hibernate是否支持這種關係?
城市類:
@Entity
public class City {
@Id
@Column(name = "ID", updatable = false, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "countrycode", nullable = false)
private Country countrycode;
...
鄉村類:
@Entity
public class Country {
@Id
private String code;
@OneToMany(targetEntity = City.class, mappedBy = "countrycode")
private Set<City> cities;
private Integer capital;
...
城市實體中是否不應該註明資本是否屬於某個特定的城市? – Journeycorner
我從mysql.com使用示例數據庫'world'。城市表中額外的布爾字段是不必要的恕我直言。我可以通過Hibernate查詢語言的theta連接來獲取大寫列表。 – Steve