gpt4 book ai didi

hibernate - hibernate 搜索是否需要@DocumentId?

转载 作者:行者123 更新时间:2023-12-04 19:13:50 25 4
gpt4 key购买 nike

我正在使用 Hibernate Search 并且文档和书籍说我需要在 id 字段上使用 @DocumentId 以便 Hibernate Search 可以知道如何将索引映射到对象。

我的代码在我的代码中没有任何地方没有 @DocumentId 的情况下似乎工作正常。 Hibernate Search 是否变得足够聪明,可以发现 @Id 字段是一个很好的默认值?这会导致不明显的问题吗?

谢谢你的时间!

最佳答案

@DocumentId如果您使用 .hbm.xml 映射实体的老式风格,则需要文件。如果您使用该映射方法并忽略注释文档 ID,那么在启动时您将看到如下异常:

org.hibernate.search.SearchException: No document id in: com.mypackage.MyEntity

但是,如果您正在使用注释并使用 @Id 注释主键,那么您就不必使用 @DocumentId .

更准确地说,Hibernate Search 文档说 @DocumentId使用时可选 JPA 注释。所以也许你仍然需要使用 @DocumentId如果您使用的是 Hibernate 3.x 样式的注释......我从未测试过这个。

无论哪种方式,Hibernate 4.x 都弃用了它自己的映射注释,转而支持 JPA 样式的注释, 即使 您正在使用 Hibernate 的 Session而不是 JPA 的 EntityManager为您的查询。所以简而言之:你需要使用 @DocumentId如果您使用的是 XML 样式的映射……而如果您使用的是注释,则它是可选的,因为此时您无论如何都应该使用 JPA 样式的注释。

关于hibernate - hibernate 搜索是否需要@DocumentId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com