Java 如何使用Hibernate搜索处理集合更新

Java 如何使用Hibernate搜索处理集合更新,java,hibernate,lucene,hibernate-search,Java,Hibernate,Lucene,Hibernate Search,我正在使用Entitymanager执行更新,如下所示: Query query1 = em.createQuery("update user u set u.changed = true where u.changed is null"); query1.executeUpdate(); @Column(nullable = false) @Field(analyzer=@Analyzer(impl=StandardAnalyzer.class)) @FieldBridge(impl=org

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

Query query1 = em.createQuery("update user u set u.changed = true where u.changed is null");
query1.executeUpdate();
@Column(nullable = false)
@Field(analyzer=@Analyzer(impl=StandardAnalyzer.class))
@FieldBridge(impl=org.hibernate.search.bridge.builtin.BooleanBridge.class)
private Boolean changed = false;
已更改的是注释字段,如下所示:

Query query1 = em.createQuery("update user u set u.changed = true where u.changed is null");
query1.executeUpdate();
@Column(nullable = false)
@Field(analyzer=@Analyzer(impl=StandardAnalyzer.class))
@FieldBridge(impl=org.hibernate.search.bridge.builtin.BooleanBridge.class)
private Boolean changed = false;
更新后,lucene索引不会得到更新。我要做什么,lucene索引也要更新

问候
Christian执行SQL查询是在绕过会话生命周期。因此,自动索引更新无法工作。您基本上有两种选择:

  • 通过条件查询加载受影响的实体,修改它们,然后保存它们(当然都在会话中)
  • 通过搜索索引API手动索引实体。不过,这里的想法相同,您需要选择/查询要索引的正确实体