@DocumentId
là bắt buộc nếu bạn đang sử dụng kiểu trường học cũ để ánh xạ các thực thể của bạn với các tệp .hbm.xml
. Nếu bạn đang sử dụng phương pháp lập bản đồ và bỏ bê để chú thích một id tài liệu, sau đó lúc khởi động, bạn sẽ thấy một ngoại lệ như thế này:
org.hibernate.search.SearchException: No document id in: com.mypackage.MyEntity
Tuy nhiên, nếu bạn đang sử dụng các chú thích và đã chú thích một khóa chính với @Id
, sau đó bạn không phải sử dụng @DocumentId
.
Để được chính xác hơn, các tài liệu Hibernate Tìm kiếm nói rằng @DocumentId
là không bắt buộc khi sử dụng JPA chú thích. Vì vậy, có lẽ bạn vẫn sẽ cần phải sử dụng @DocumentId
nếu bạn đang sử dụng Hibernate 3.x phong cách chú thích ... Tôi chưa bao giờ thử nghiệm này.
Dù bằng cách nào, Hibernate 4.x deprecates chú thích bản đồ riêng của mình ủng hộ các chú thích JPA-phong cách, ngay cả khi bạn đang sử dụng Session
hơn JPA của EntityManager
cho truy vấn của bạn Hibernate của. Tóm lại: bạn cần sử dụng @DocumentId
nếu bạn đang sử dụng ánh xạ kiểu XML ... trong khi đó là tùy chọn nếu bạn đang sử dụng chú thích, vì tại thời điểm này, bạn nên sử dụng chú thích kiểu JPA.
Nguồn
2012-10-02 20:52:43
Tôi nghĩ đây là trường hợp nhưng tôi không thể tìm thấy trong tài liệu. Cảm ơn! – jackcrews