gpt4 book ai didi

java - MassIndexing 时 Hibernate Search 中引用代理的 transient 方法

转载 作者:行者123 更新时间:2023-12-02 06:16:27 24 4
gpt4 key购买 nike

我正在使用 MassIndexer 来索引我的文档。我有一个用 @Transient 注释的方法,它引用延迟初始化的 @OneToMany 集合,如下所示:

@OneToMany
@JoinColumns({
@JoinColumn(name = "insertForeignKeyHere", referencedColumnName = "insertPrimaryKeyHere"),... })
@NotFound(action = NotFoundAction.IGNORE)
public Set<AdditionalOption> getAdditionalOptions() {
return this.additionalOptions;
}

@Transient
@IndexedEmbedded
public Set<AdditionalOption> getActiveAdditionalOptions() {
Set<AdditionalOption> ret = new HashSet<>();
//the next line produces the error
for (AdditionalOption addOpt : this.getAdditionalOptions()) {
//do stuff.
}
return ret;
}

每当我尝试使用 MassIndexer 且没有 @OneToMany(fetch = FetchType.EAGER) 来索引此文档时,我都会收到此异常:

org.hibernate.LazyInitializationException:无法延迟初始化角色集合:<...>,无法初始化代理 - 无 session

对于如何在不进行 EAGER 抓取的情况下执行此操作有什么想法吗? (我有 4 或 5 个集合,如果这没有不同的工作方式,则需要急切地获取 -> 巨大的性能问题)

提前致谢。

顺便说一句:我正在使用

<hibernate.version>4.3.1.Final</hibernate.version>
<hibernate.search.version>4.5.0.Alpha2</hibernate.search.version>
<lucene.version>3.6.2</lucene.version>

最佳答案

尝试使用版本Hibernate Search 4.5.0.Final:看起来您正在点击HSEARCH-1260 ,我们最近解决了这个问题。

关于java - MassIndexing 时 Hibernate Search 中引用代理的 transient 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21408565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com