領域物件裡有個屬性的型別是介面,如何用hibernate持久化
大家好,我最近在設計一個倉庫系統,設計事務物件與出,入,移庫單遇到一點疑惑。
//訂單
interface Order{
}
//入庫單
class InInventoryOrder{
private Long id;
....
}
//出庫單
class OutInventoryOrder{
private Long id;
...
}
//目前為了持久化事務物件,我這樣設計MaterialTransaction物件
class MaterialTransaction{
private Long id;
....
//對應的出入庫單物件,many-to-one的關係
private InInventoryOrder inInventoryOrder;
private OutInventoryOrder outInventoryOrder;
}
疑惑:
這樣設計的話,如果以後有新型別的單子,比如說根據移庫單產生事務記錄,那麼我就需要修改MaterialTransaction為:
class MaterialTransaction{
private Long id;
private Item item;
....
//對應的出入庫單物件,many-to-one的關係
private InInventoryOrder inInventoryOrder;
private OutInventoryOrder outInventoryOrder;
//新增加的
private MoveInventoryOrder moveInventoryOrder;
}
這樣的設計我感覺不是很好,我想這樣設計:
MaterialTransaction為:
class MaterialTransaction{
private Long id;
private Item item;
....
//對應的出入庫單物件,many-to-one的關係
private Order order;
}
這樣order可以表示InInventoryOrder,OutInventoryOrder,MoveInventoryOrder或者其他實現了Order介面的物件。但是我不知道這樣設計的話,如何在hibernate中配置?還是根本就不能這樣設計?
//訂單
interface Order{
}
//入庫單
class InInventoryOrder{
private Long id;
....
}
//出庫單
class OutInventoryOrder{
private Long id;
...
}
//目前為了持久化事務物件,我這樣設計MaterialTransaction物件
class MaterialTransaction{
private Long id;
....
//對應的出入庫單物件,many-to-one的關係
private InInventoryOrder inInventoryOrder;
private OutInventoryOrder outInventoryOrder;
}
疑惑:
這樣設計的話,如果以後有新型別的單子,比如說根據移庫單產生事務記錄,那麼我就需要修改MaterialTransaction為:
class MaterialTransaction{
private Long id;
private Item item;
....
//對應的出入庫單物件,many-to-one的關係
private InInventoryOrder inInventoryOrder;
private OutInventoryOrder outInventoryOrder;
//新增加的
private MoveInventoryOrder moveInventoryOrder;
}
這樣的設計我感覺不是很好,我想這樣設計:
MaterialTransaction為:
class MaterialTransaction{
private Long id;
private Item item;
....
//對應的出入庫單物件,many-to-one的關係
private Order order;
}
這樣order可以表示InInventoryOrder,OutInventoryOrder,MoveInventoryOrder或者其他實現了Order介面的物件。但是我不知道這樣設計的話,如何在hibernate中配置?還是根本就不能這樣設計?
相關文章
- Hibernate 持久化物件的狀態持久化物件
- Hibernate持久化物件的狀態持久化物件
- Hibernate 對映xml中的屬性型別XML型別
- js判斷物件裡面是否有某個屬性JS物件
- HIBERNATE的對映---資料庫表中欄位和對應持久化類中屬性都是自定義型別的?資料庫持久化型別
- Hibernate查詢後返回的集合物件中每個物件是什麼型別的?物件型別
- 物件導向--內部屬性型別物件型別
- 程式設計領域裡有哪些是共通的地方?程式設計
- 獲取物件屬性型別、屬性名稱、屬性值的研究:反射和JEXL解析引擎物件型別反射
- 領域事件中涉及的實體可能還沒有持久化呀?事件持久化
- javascript基礎(物件,物件屬性,屬性基本和引用資料型別,字面量建立物件,垃圾回收,屬性的列舉)(十三)JavaScript物件資料型別
- 作用域、連結屬性和儲存型別型別
- Devops是數字化轉型在IT領域的一個最佳實踐dev
- C# 隨機給一個全部資訊都未知的類型別,如何獲取該類的類名、屬性個數、屬性名、屬性的資料型別、屬性值?C#隨機資料型別
- Properties 持久的屬性集
- JavaScript物件屬性是有序的嗎?JavaScript物件
- Jackson序列化日期型別的屬性型別
- HTML 裡 img 元素的 src 和 srcset 屬性有何區別?HTML
- 論如何監聽物件某個屬性的變化物件
- 同樣是持久化,竟然有這麼大的差別!持久化
- 定義物料型別的屬性型別
- 宣告 NSString 型別的屬性,到底用 strong 還是 copy ?型別
- 領域實體有沒有繼承性?繼承
- hibernate或者jpa在更新物件時,必須更新物件的全部屬性嗎?物件
- js 物件方法、類方法、原型方法的區別;私有屬性、公有屬性、公有靜態屬性的區別JS物件原型
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- typescript 介面和物件型別(四)TypeScript物件型別
- String型別的屬性和方法型別
- js如何判斷物件的屬性值是物件還是陣列JS物件陣列
- 瀏覽器物件屬性 window.innerWidth 和 window.outerWidth 這兩個寬度屬性有何區別?瀏覽器物件
- 【JavaScript】Function型別是物件JavaScriptFunction型別物件
- SAP MM 定義物料型別的屬性配置裡的New entries按鈕型別
- 將一個物件裡所有的空值屬性設定成null物件Null
- 15大領域、127個任務,這裡有最全的機器學習SOTA模型機器學習模型
- 陣列物件按物件某個屬性排序陣列物件排序
- BIP研發知識:領域、單據型別、交易型別型別
- Elasticsearch資料型別及其屬性Elasticsearch資料型別
- GObject的物件屬性GoObject物件