@DocumentId
.hbm.xml
エンティティをファイルにマッピングする昔ながらのスタイルを使用している場合は必須です。そのマッピング アプローチを使用していて、ドキュメント ID に注釈を付けるのを怠ると、起動時に次のような例外が表示されます。
org.hibernate.search.SearchException: No document id in: com.mypackage.MyEntity
ただし、アノテーションを使用していて、主キーに でアノテーションを付けている場合は、@Id
を使用する必要はありません@DocumentId
。
より正確には、Hibernate Search のドキュメントには、JPAアノテーション@DocumentId
を使用する場合はオプションであると記載されています。したがって、Hibernate 3.x スタイルのアノテーションを使用している場合は、まだ使用する必要があるかもしれません...私はこれをテストしたことがありません。 @DocumentId
いずれにせよ、Hibernate 4.xは、クエリにJPA ではなくHibernate を使用している場合でも、JPA スタイルのアノテーションを優先して独自のマッピング アノテーションを廃止します。つまり、一言で言えば、XML スタイルのマッピングを使用している場合は使用する必要があります... 一方、注釈を使用している場合はオプションです。この時点ではとにかく JPA スタイルの注釈を使用する必要があるためです。Session
EntityManager
@DocumentId