【问题标题】:Hibernate Search tries to guess fieldbridges for unindexed entitiesHibernate Search 尝试猜测未索引实体的字段桥
【发布时间】:2013-10-31 15:57:43
【问题描述】:

我正在尝试在具有大型对象模型(>200 个实体)的项目中使用 Hibernate Search (4.4.0)。其中,我只想索引几个实体;目前只有一个。我根据实体的需要添加了@Indexed、@DocumentId 和@Field 注释。

但是,当我部署我的工件并启动应用程序服务器时,我收到一条错误消息“HSEARCH000135: Unable to guess FieldBridge for [field] in [type]”对于位于相同的持久性单元,但与索引实体完全无关。

我不想为我不打算索引的实体主键指定自定义字段桥,因为这需要很长时间才能在完整的对象模型上实现。

我的问题是:为什么会这样?有没有办法解决这个问题?

作为参考,完整的堆栈跟踪如下:

org.hibernate.search.SearchException: HSEARCH000135: Unable to guess FieldBridge for <field> in <type>
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:100)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.hibernate.search.SearchException: HSEARCH000135: Unable to guess FieldBridge for <field> in <type>
    at org.hibernate.search.bridge.impl.BridgeFactory.guessType(BridgeFactory.java:432)
    at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.checkDocumentId(AnnotationMetadataProvider.java:159)
    at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeMemberLevelAnnotations(AnnotationMetadataProvider.java:625)
    at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeClass(AnnotationMetadataProvider.java:338)
    at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.getTypeMetadataFor(AnnotationMetadataProvider.java:118)
    at org.hibernate.search.engine.spi.AbstractDocumentBuilder.<init>(AbstractDocumentBuilder.java:100)
    at org.hibernate.search.engine.spi.DocumentBuilderContainedEntity.<init>(DocumentBuilderContainedEntity.java:62)
    at org.hibernate.search.spi.SearchFactoryBuilder.initDocumentBuilders(SearchFactoryBuilder.java:342)
    at org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:217)
    at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:141)
    at org.hibernate.search.hcore.impl.HibernateSearchSessionFactoryObserver.sessionFactoryCreated(HibernateSearchSessionFactoryObserver.java:74)
    at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:52)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:558)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1746)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:197)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$500(PersistenceUnitServiceImpl.java:57)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:96)
    ... 4 more

【问题讨论】:

  • 您好,您能否显示启动失败的实体 的映射?这(显然)不应该发生,所以我需要弄清楚你是如何触发它的。理想情况下,如果您可以在 hibernate.atlassian.net/browse/HSEARCH 上新创建的 JIRA 问题上描述它
  • 这是由 java.sql.Timestamp 类型的主键和由 @ManyToOne 与其他实体的关系组成的复合键引起的。如果这不能帮助您重现问题,我可以尝试建立一个小项目来显示正在发生的事情。
  • 谢谢,这就够了,我已经知道出了什么问题。创建hibernate.atlassian.net/browse/HSEARCH-1447
  • 实际上,即使我怀疑某些东西,我也无法重现它。我希望看到失败实体及其主键的映射,您能否将这些作为 cmets(或附件)添加到 JIRA 上?
  • 我创建了一个显示失败的示例项目:github.com/robbertbrak/hsearch-1447

标签: java hibernate hibernate-search


【解决方案1】:

所以这是一个已经修复了很长时间的错误 (https://hibernate.atlassian.net/browse/HSEARCH-1447)。解决方案是至少使用 Hibernate Search 的 4.4.3.Final 版本。

【讨论】:

    猜你喜欢
    • 2014-12-29
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多