簡體   English   中英

如何使用JPA保留復雜的嵌套對象

[英]How to persist a complicated, nested object with JPA

我正在一個項目,該項目使用NLP庫從互聯網論壇上的分類廣告中解析信息。 處理之后,我得到了ForSaleItem實例和各種詳細信息,例如條件,價格等。

當我在這些對象上調用toString()方法時,它不會返回存儲在對象本身中的字符串,而是在整個論壇帖子中查找其自己的起點和終點,然后從那里提取文本。 (這樣做是為了我可以計算文本的各個位的接近度)。

我想使用JPA將這些對象持久保存到RDBMS。 處理完之后,我不再真正關心鄰近項,我只想向用戶顯示字符串。 如果我堅持整個論壇的帖子,並繼續通過上述方法檢索實際文本,那將是一個巨大的浪費。

現在我的問題是:我應該使用String字段增強原始類,還是應該創建一個全新的類,即。 像PersistentForSaleItem之類的東西?

我建議創建一個新項目,該項目將持續存在,並且僅包含您關注的部分。 這似乎是最簡單的方法,它可以使您分離收集/處理數據以及最終存儲和顯示數據的問題。 您甚至可以通過在構造過程中傳入另一個對象來創建持久對象,然后使用批注/ xml配置將該對象持久保存到RDBMS中。

只是我的2美分。

看起來您的ForSaleItem有幾點確實與您要保留的內容不兼容:

  • 字符串的復雜檢索過程

    ->持久后不需要。

  • 多個對象,這些對象將保留到多個表中

    ->不必要的復雜且緩慢,而只有一個對象可以將String存儲在單個表中,並更有效地檢索它。

因此,我建議您對持久性使用不同的對象。

請注意,創建起來可能非常簡單,例如:

  • 一個類,沒有超類,帶有注釋@Entity
  • 一個長標識符字段,帶有@Id和@GeneratedValue批注
  • 一個String字段,帶有getter(如果想要的最大字符串長度與256個默認值不同,則使用@Column)和setter
  • 一個空的構造函數(可選)

  • --

暫無
暫無

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

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