gpt4 book ai didi

java - 如何使用 Hibernate Search 处理集合更新

转载 作者:行者123 更新时间:2023-12-01 15:25:21 25 4
gpt4 key购买 nike

我正在使用 Entitymanager 执行更新,如下所示:

Query query1 = em.createQuery("update user u set u.changed = true where u.changed is null");
query1.executeUpdate();

changed 是一个带注释的字段,如下所示:

@Column(nullable = false)
@Field(analyzer=@Analyzer(impl=StandardAnalyzer.class))
@FieldBridge(impl=org.hibernate.search.bridge.builtin.BooleanBridge.class)
private Boolean changed = false;

更新后,lucene 索引不会更新。我必须做什么才能使 lucene 索引也更新?

亲切的问候克里斯蒂安

最佳答案

执行 SQL 查询会绕过 session 生命周期。因此,自动索引更新将不起作用。您基本上有两个选择:

  1. 通过条件查询加载受影响的实体,修改它们,然后保存它们(当然,所有这些都在 session 内)
  2. 通过搜索索引 API 手动为实体编制索引。不过,这里的想法相同,您需要选择/查询要索引的正确实体

关于java - 如何使用 Hibernate Search 处理集合更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10245667/

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