可以使斑點短暫的,那麼它將不會被序列化,但是這將是空在反序列化:
private transient Blob data;
我認爲你唯一的選擇是創建一個單獨的對象爲BLOB,只在RawDataEntity中引用它並使用LoadableDetachableModel根據請求重新加載它。
public class BlobModel extends LoadableDetachableModel<Blob> {
private int id;
public BlobModel(int id) {
this.id = id;
}
@Override
protected Blob load() {
return dao.getObject(id);
}
}
另一個選項是更改無法序列化頁面的序列化。首先創建一個接口,用於這些頁面:
public interface CustomSerialize {
Serializable getSerializable(Object object);
Object getUnserializable(Object object);
}
下一頁創建您自己的序列:
public class CustomSerializer extends JavaSerializer {
public CustomSerializer(String applicationKey) {
super(applicationKey);
}
@Override
public byte[] serialize(Object object) {
if (object instanceof CustomSerialize) {
super.serialize(((CustomSerialize) object).getSerializable(object));
}
return super.serialize(object);
}
@Override
public Object deserialize(byte[] data) {
Object object = super.deserialize(data);
if (object instanceof CustomSerialize) {
return ((CustomSerialize) object).getUnserializable(object);
}
return object;
}
}
然後在網頁上的接口不能被序列化並寫出兩種方法。 getSerializable()應創建一個實現CustomSerializer的對象,以便getUnserializable()返回相同的頁面。
和最後,使用新的串行在檢票口的WebApplication:
getFrameworkSettings().setSerializer(new CustomSerializer(getApplicationKey()));
是堅持一個領域Hibernate中使用臨時關鍵字?如果我沒有理解Hibernate實現JPA的,它不堅持瞬態字段或瞬態標註的字段,以及在http://stackoverflow.com/questions/3976469/is-hibernate-jpa-taking-in-consideration-the-描述transiant-modifier-not-anno –
是的,瞬態也意味着它不會被持續。是否有可能以任何方式更改實體?由於Blob對象不能被序列化,所以你必須改變某個地方。爲什麼你不能爲整個實體使用Loadable模型? – Martin
LoadableDetachableModel不解決持久性問題。如果一個對象被hibernate持久化(使用hibernate版本控制),所有的字段都被hibernate持久/管理。 –