我想使用 ManyToOne 加入 hibernate 和 kotlin,默认情况下不加载加入的实体。
@Entity
class Author {
@Id
var id = 0L
lateinit var name: String
@OneToMany
lateinit var books: List<Book>
...
}
@Entity
class Book {
@Id
var id = 0L
lateinit var title: String
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "author_id")
lateinit var author: Author
...
}
所有实体都是开放的。
如果我用
装书criteriaQuery.select(rootBook)
对于作者也默认加载的每本书。
我怎样才能阻止作者加载,除非解决它?
我也试过了
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@LazyToOne(LazyToOneOption.PROXY)/@LazyToOne(LazyToOneOption.NO_PROXY)/@LazyToOne(LazyToOneOption.FALSE)
@Basic(fetch = FetchType.LAZY)
@MapsId
@Proxy(lazy = true) // As annotation for the class
在休眠状态下我启用了
enable_lazy_load_no_trans
enhancer.enableLazyInitialization