Hibernate join 默认情况下不定位 join 实体

问题描述 投票:0回答:1

我想在默认情况下不使用连接实体来使用连接。

@Entity 
public class Author { 
  @Id 
  private Long id; 
  private String name; 
  private String genre; 
  private int age; 
   
  @OneToMany 
  private List<Book> books = new ArrayList<>(); 
  ...
}


@Entity 
public class Book { 
  @Id private Long id; 
  private String title; 
  private String isbn; 

  @ManyToOne(fetch = FetchType.LAZY) 
  @JoinColumn(name = "author_id") 
  private Author author; 
  ... 
}

如果我通过标准 api 加载作者

criteriaQuery.select(rootAuthor)

所有作者的所有书籍都已加载。

如何防止默认加载连接的实体,只在寻址实体时加载它们?

java database hibernate criteria
1个回答
0
投票

也可以在Author类的books对象中加上

FetchType.LAZY
,实现懒加载图书。

@OneToMany(fetch = FetchType.LAZY)
private List<Book> books = new ArrayList<>();
© www.soinside.com 2019 - 2024. All rights reserved.