一对多左连接查询

时间:2013-01-24 08:10:11

标签: spring hibernate jpa

大家好,             我是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方法时,我会看到ABcol_1col_2映射的每条记录都有一个左外连接查询}}。所有这些查询都是多余的。我期待只执行一个左外连接查询。这导致我的应用程序超时。谢谢你的帮助:)

0 个答案:

没有答案