「断片」の場合は分かりませんが、PropertiesインスタンスからXMLを保存してXMLからインスタンスをロードできるので、XMLを保持しているエンティティに@Lobプロパティを持たせることができます永続する。 ような何か:
class MyEntity implements Serializable {
@Transient
Properties props;
@Lob
byte[] xmlProp; //the xml as a byte[]
//ids, getters & setters ommited
}
そして、あなたはあなたのエンティティを永続化および取得のハードワークを行うにDAO実装することができます:java.util.Properties APIで
class MyEntityDAO {
public void persist(MyEntity entity){
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
entity.getProps().storeToXML(bos, "a simple comment if you like");
byte[] byteStream = bos.toByteArray();
entity.setXmlProp = byteStream;
//save your instance with hibernate...
} catch (IOException e) {
e.printStackTrace();
}
}
public MyEntity retrieveById(Long id){
Properties propFromDB = new Properties();
MyEntity ent = //retrieve the instance with hibernate...
try{
Properties propFromDB = new Properties();
ByteArrayInputStream bais = new ByteArrayInputStream(ent.getXmlProp());
propFromDB.load(bais);
ent.setProp(propFromDB);
return ent;
} catch (IOException ioe){
ioe.printStackTrace();
}
return null;
}
}
チェック方法storeToXMLとloadFromXMLを。
希望します。
Bozho、私はあなたがプロパティのインスタンスを一時的にするだろうと仮定しますが、どの時点でプロパティをマップにエクスポートしますか?私はそれがいつ起こるかの仕組みが分からない。 –
@Jason Nichols私はそれを手作業のプロセスとして意味しました。あるいは '@ PreX'イベントリスナーでしょう。おそらくそれはUserTypeを介して可能ですが、私はそのようなことは一度も書いていないので、わかりません。 – Bozho