代码之家  ›  专栏  ›  技术社区  ›  yodamad

春季开机2休眠搜索

  •  1
  • yodamad  · 技术社区  · 6 年前

    我正在尝试将我的应用程序迁移到使用Hibernate搜索的SpringBoot2。 启动应用程序时出错:

    • 5.5.x.最终 : java.lang.NoSuchFieldError: session
    • 5.6.x.最终 5.8.x.最终 : java.lang.ClassNotFoundException: org.hibernate.search.jpa.Search
    • 5.7.x.最终 5.9.x.最终 : An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene53' does not exist
    • 5.10.x.最终 : NoClassDefFoundError: org/hibernate/resource/beans/spi/ManagedBeanRegistry

    有关信息,请参阅当前的Spring Boot 2.0.3.RELEASE 版本在中使用休眠核心依赖项 5.2.4.Final

    知道要用哪个版本吗?

    在Guillaume回答后更新&a deep clean of workspace and indexes

    使用5.9版本,异常已经演变为 No transactional EntityManager available

    最后一句话

    最后一个错误是通过添加 @Transactional 在方法上,但它在没有弹簧引导1的情况下工作。奇怪的。。。

    2 回复  |  直到 5 年前
        1
  •  5
  •   Guillaume Smet    6 年前

    您应该使用的版本取决于所使用的ORM版本。检查你的依赖性。

    请参见此兼容性矩阵: http://hibernate.org/search/releases/#compatibility-matrix

    如果您使用的是SpringBoot2.0.3的默认依赖项,那么ORM的版本应该是5.2.17.final,因此您应该使用Search5.9。

    您还需要使用Lucene 5.5.x,因此如果您来自旧的Lucene版本,可能需要升级Lucene。

        2
  •  0
  •   Juan Carlos Angulo    5 年前

    我试图做同样的事情,我在这个存储库中得到了以下结果(工作)

    https://github.com/jcangh/boot-hibernate-search

    • 弹簧靴2.0.9版
    • 休眠搜索ORM 5.7.3.最终

    我试过更高版本但没用