大家好, 我是hibernate JPA的新手。以下是我在实体A和B之间定义的关系。
以下是课程A
class A{
@Id
@GeneratedValue
private Long id;
@Column(name = "col_1")
private Long col1;
@Column(name = "col_2")
private Long col2;
@OneToMany(fetch = FetchType.EAGER,mappedBy = "a")
private List<B> bList= new LinkedList<B>();
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public List<B> getBList() {
return bList;
}
public void setBList(List<B> bList) {
this.bList = bList;
}
}
这是类B
class B{
@Id
@GeneratedValue
private Long id;
@NotNull
@ManyToOne(optional=false)
@JoinColumns(value = { @JoinColumn(name = "col_1", referencedColumnName="col_1"),
@JoinColumn(name = "col_1", referencedColumnName="col_2") })
private A a;
@Column(name = "col_1")
private Long col1;
@Column(name = "col_2")
private Long col2;
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
我有crudrepository
的{{1}}界面。当我运行加载A
实体的crud方法时,我会看到A
中B
和col_1
列col_2
映射的每条记录都有一个左外连接查询}}。所有这些查询都是多余的。我期待只执行一个左外连接查询。这导致我的应用程序超时。谢谢你的帮助:)