在Rails中,我們有serialize
方法,該方法將一個屬性(或列)保存在數據庫中時將自動序列化爲json。有沒有什麼Hibernate的序列化/反序列化JSON(或XML)列將其轉換成真正的模型屬性?
保存並查詢該對象之後,可以將對象序列化的json作爲真實的類屬性進行訪問。
我的問題是:是否有任何內置或包含此功能休眠的包?如果否定,是否可以使用反射java api動態創建屬性?
我在質疑這一點,因爲我對學習一點Java以及你可以用JVM做什麼感興趣。
謝謝。
在Rails中,我們有serialize
方法,該方法將一個屬性(或列)保存在數據庫中時將自動序列化爲json。有沒有什麼Hibernate的序列化/反序列化JSON(或XML)列將其轉換成真正的模型屬性?
保存並查詢該對象之後,可以將對象序列化的json作爲真實的類屬性進行訪問。
我的問題是:是否有任何內置或包含此功能休眠的包?如果否定,是否可以使用反射java api動態創建屬性?
我在質疑這一點,因爲我對學習一點Java以及你可以用JVM做什麼感興趣。
謝謝。
我真的不明白你想要什麼,對不起。
但是,如果您希望有一個對象的字段,其值在單列中以序列化形式保存到數據庫,而不是映射爲引用另一個表中的行,那麼這是JPA的標準部分。您只需定義一個字段,然後不要使用關係註釋對其進行註釋。雖然(可惜),但我相信該字段的類型必須是Serializable
的子類型。例如:
@Entity
public class Colleague {
@Id
private int id;
private HashMap<Date, String> diary;
}
這將映射到這樣一個表:
create table Colleague (
id integer primary key,
diary blob
)
現在,你提到的JSON。這不會使用JSON;它將使用標準的Java序列化。我認爲沒有任何特別有效的方法可以使它成爲JSON。最簡單的可能是將對象包裝成JSONifying包裝器中的序列。不太難,但有點奇怪。
儘管這不是JSON,但它在很大程度上也很有用:數據進入數據庫然後返回。
再次,不知道這是否真的是你想要的,對不起!
您可以使用現有的JSON庫(如Jackson或Gson)爲此編寫自己的自定義用戶類型。
我不認爲Hibernate有這樣的工具。但是,我看到2種方法來模擬這種行爲
謝謝,我想要的是功能:-)你釘了它! – thiagofm
不幸的是,'java.util.Map'沒有擴展java.io.Serializable',但它的流行實現呢! –