我正在将 Hibernate 用于基于 Java 的 Web 应用程序,并希望通过 Compass 添加全文搜索。 Compass 应该支持这一点,但未能提供任何有用的入门指南。
我发现我必须使用 @Searchable 和各种 @SearchableXXX 变体来注释我的实体,并通过 HibernateHelper.getCompass(sessionFactory) 在我的服务代码中访问 Compass。
我以 HibernateException 结束,它说“Compass 事件监听器未配置,请检查引用文档和应用程序的 hibernate.cfg.xml”。
reference documentation再次提示和 hibernate.cfg.xml,同时我使用 Spring 的 AnnotationSessionFactoryBean 配置 Hibernate。对于这种情况,文档提到:“如果使用 Hibernate Annotations 或 Hibernate EntityManager (JPA),只需将 Compass jar 文件放到类路径中即可启用它(确保类路径中没有 Hibernate Search,因为它使用相同的事件类名称)。”这对我不起作用。
有什么想法是我遗漏的,或者是入门的好资源吗?
最佳答案
我想知道您为什么选择 Compass 进入 hibernate 状态。我们查看了 Compass 和 Hibernate-Search,我们选择了后者,因为它具有出色的集成性。
您可以使用与使用 HQL 或 Critera 查询 SQL 数据库完全相同的方式查询测试索引。
如果您使用的是 iBatis 或 JDBC,那么 Compass 当然会更合适。 Hibernate 搜索更适合 JTA。
是我还是 Compass 明显缺乏 Activity ?
关于java - 使用带注释的 Hibernate 配置 Compass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261922/