簡體   English   中英

Hibernate搜索中的雙向關系

[英]Bidirectional relationship in Hibernate search

我正在使用Hibernate Search創建一個應用程序。 我注意到所有示例都使用了雙向關系。 我閱讀以下內容:

當@IndexedEmbedded指向實體時,關聯必須是定向的,另一端必須使用@ContainedIn注釋(如上例所示)。 如果不是,則在關聯實體更新時,Hibernate Search無法更新根索引(在我們的示例中,當關聯的Address實例更新時,必須更新位置索引文檔)。

休眠搜索第4章

如果我將JPA視為應用程序的一部分,這不是一件壞事嗎? 現在所有對象都應該在哪里使用/有什么東西正常嗎? 有人對此有經驗嗎?

如果我將JPA視為應用程序的一部分,這不是一件壞事嗎? 現在所有對象都應該在哪里使用/有什么東西正常嗎? 有人對此有經驗嗎?

完全不是一件壞事。 實際上,具有雙向關聯是很常見的,因為經常需要根據用例在實體圖中雙向導航。 另請注意,由於延遲加載,具有雙向關聯通常不是性能或內存問題。

也就是說,如果您確實不需要雙向關聯,則可以自由使用單向關聯。 但是,在這種情況下,由於Hibernate Search文檔中所述的原因,您需要謹慎使用@IndexedEmbedded

具體來說,讓您的對象“知道在哪里使用它們”是否不好,請就您的問題提出意見:

您沒有在業務邏輯層引入依賴關系; 那確實是魚,但事實並非如此。 在這種情況下,您將使現有鏈接更明確:這些實體在數據方面具有關聯,實際上最好突出顯示該關聯,以便任何檢查實體A的人都可以立即意識到與實體B的關聯:否則將被隱藏,但仍然存在於物理層上,對於從事映射工作的人員而言,最好記住這一點。

它沒有任何性能上的缺點,在架構上也沒有任何缺點,並且具有實際的好處,即它可能對您的業務邏輯很有用,而無需維護其他查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM