我想在默认情况下不使用连接实体来使用连接。
@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)
所有作者的所有书籍都已加载。
如何防止默认加载连接的实体,只在寻址实体时加载它们?
也可以在Author类的books对象中加上
FetchType.LAZY
,实现懒加载图书。
@OneToMany(fetch = FetchType.LAZY)
private List<Book> books = new ArrayList<>();