0
我是Hibernate的新手。我注意到在Hibernate中,將java類映射到數據庫表通常涉及關係表,即使有時候關係表也不是必需的(就像在一對多關係中或相反)。避免Hibernate映射一對多(或一對多)關聯到db表中的關係表
例如:
我是一個公司類和一個飛行類,其中一個公司可以有多個航班(一,從公司到飛行一對多關聯)。
我使用Hibernate註釋下面的代碼:
@Entity
@Table(name = "COMPANY")
public class Company {
@Id
private Long id;
@OneToMany
private Set<Flight> flights = new HashSet<Flight>();
......
getter and setter methods
......
}
@Entity
@Table(name="FLIGHT")
public class Flight{
@Id
private Long id;
@ManyToOne
@JoinColumn(name = "COMP_ID")
private Company ownerCompany;
......
getter and setter methods
......
}
的類被成功地映射到數據庫中。和有三個表,它們是:
- COMPANY(一個ID字段)
- FLIGHT(一個ID字段和一個COMP_ID字段)
- COMPANY_MANY_TO_ONE_FLIGHT(兩個字段:MANY_TO_ONE_COMPANY_id和flights_id)
但是,最後一個表COMPANY_MANY_TO_ONE_FLIGHT是由hibernate添加的關係表,它是冗餘的。
顯然,在FLIGHT表中有一個外鍵COMP_ID,合理的刪除冗餘關係表。
我該如何避免這種情況?就像通過修改註釋一樣。
是的,它的作品! thannks – xiaohan2012