遭遇Hibernate搜索BUG https://hibernate.atlassian.net/browse/HSEARCH-1385, 我们需要手动更新@IndexedEmbedded列表的索引。我拦截了事务并在afterTransactionCompletion中手动调用索引。但这耗费时间很少。控制器返回视图后可以调用索引方法吗? 现在是:GET - > POST - >更新对象 - >更新索引(arg对象) - >返回对象列表 我需要:GET - > POST - >更新对象 - >返回对象视图 - >更新索引(arg对象)
答案 0 :(得分:0)
将更新索引分配给单独的线程或通过JMS执行此操作。
现在流程将如下:
GET - > POST - >更新对象 - > - >启动新线程更新索引 - >返回对象视图
答案 1 :(得分:0)
解决:
public class OwnInterceptor extends EmptyInterceptor {
afterTransactionCompletion(Transaction tx) {
//implement new Thread
}
}
新线程正在异步运行,因此将返回控制器视图,同时该线程将重新索引数据。