2009-11-09 57 views
1

可有人請給我上有一些已知的屬性,而大多數是由系統的用戶自定義建模休眠實體的一些技巧與用戶Hibernate的實體屬性來定義

我需要(系統初始設置過程中)以便能夠在稍後的時間點搜索這些用戶定義的屬性。

+0

是否想要以已鍵入的方式使用已知屬性,還是想要統一使用所有(已知和未知)屬性? – 2009-11-09 06:28:43

+0

數據類型可能會有所不同,但我想我們可以通過獲取有關該字段的某些元數據信息來解決該問題。 – JVXR 2009-11-12 22:13:33

回答

1

首先你需要對你將如何來模擬這一決定的。兩種最常用的方法是Entity-Attribute-Value模型和行建模。

前者是(多)更容易處理使用Hibernate;然而,根據您打算使用的搜索標準,它可能表現得很差。某些標準根本無法轉換爲單個SQL查詢。

後者很難實現,因爲您正在查看在運行時動態更改數據庫模式並更改Hibernate的配置以匹配。如果您選擇走此路線,請查看我對How to map dynamically created table in Hibernate的回答以瞭解更多詳情。

另一種可能的選擇是使用Hibernate對XML mapping的支持,但同樣取決於您的底層數據庫支持的搜索標準和XML功能(如果有的話),這可能是也可能不是可行的選擇。