org.springframework.data.repository可以被Hibernate管理吗?

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

我一直在使用休眠搜索查询数据库条目。对于大多数情况,我使用cron作业来建立索引,但是对于一种特定情况,我需要在实体更改时立即更新索引。我注意到,尽管springframework.data.repository正确更新了数据库中的数据,但Hibernate并未对索引中的相应实体进行更新。

当我更改实现以将实体管理器用于此事务时(使用entitymanager.persist(x)等),它也会正确更新索引。

我喜欢crud信息库的简单性,并且我希望保持一致,因此有没有办法使用crud信息库让休眠状态了解这种变化?

spring hibernate hibernate-search
1个回答
0
投票
如果您的CRUD存储库确实

不是使用JPA(Hibernate ORM),那么(如您所注意到的)Hibernate Search当然不会知道更改,也不会更新索引。

您未指定如何准确实现CRUD存储库,所以我想您正在使用Spring Data JDBC实现?这是我所知道的唯一方法,它使您无需依靠JPA(休眠ORM)就可以在Spring Data中更新数据库。

我建议至少对于需要自动即时索引的实体,切换到Spring Data JPA实现。

如果真的不是一种选择,我想您也许可以以某种方式插入Spring Data JDBC(重写CRUD方法,或者使用事件侦听器,这样,每次更改实体时:

您使用休眠ORM加载它

  • 但是,我怀疑性能会很好。特别是,当更改仅针对未索引的属性时,您会错过一些Hibernate Search中避免重新索引的优化。
  • © www.soinside.com 2019 - 2024. All rights reserved.