mor*_*avi 12 hibernate hibernate-onetomany
为什么hibernate为这些类使用连接表?
@Entity
public class CompanyImpl {
@OneToMany
private Set<Flight> flights;
@Entity
public class Flight {
Run Code Online (Sandbox Code Playgroud)
我既不想要连接表也不想要双向关联:(
JB *_*zet 13
因为它是如何设计的,以及JPA规范告诉它如何映射这样的关联.如果要在Flight表中使用连接列,请使用
@Entity
public class CompanyImpl {
@OneToMany
@JoinColumn(name = "company_id")
private Set<Flight> flights;
}
Run Code Online (Sandbox Code Playgroud)
这是记录在案的.
Hibernate 使用关联表来映射关系,而作为多方的另一个表不存在任何表。然后它将创建一个映射器。
该文档指出,使用 @OneToMany 和 @ManyToMany 您可以映射关联实体的集合、列表、映射和集合。
如果您不指定@joincolumn,这是关于您的问题,使用单向一对多连接表。表名是所有者表名、_ 和另一侧表名的串联。引用所有者表的外键名称是所有者表、_ 和所有者主键列名称的串联。
因此,如果您不想使用一对多创建连接表(映射器),则可能必须指定@joinColumn。
@Entity
public class CompanyImpl {
@OneToMany
@JoinColumn(name=flights_id)
private Set<Flight> flights;
@Entity
public class Flight {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6114 次 |
| 最近记录: |