在休眠状态下 ManyToOne 的延迟加载不起作用

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

我想使用 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
hibernate kotlin lazy-loading criteria many-to-one
© www.soinside.com 2019 - 2024. All rights reserved.