2011-01-11 9 views
3

汎用フィールドを永続化することはできますか?JPA総称フィールド

は、私は私がString型の場合にのみ、フィールドを保持し、すべてが素晴らしい作品セーブ動作時に自分のアプリケーションでEntityクラス

... 
private T payload; 
... 

T extends EventMessagePayload 

public interface StringPayload extends EventMessagePayload{ 
    String getPayload(); 
} 

上でこのプロパティを持っています。

代わりにオブジェクトを読み込むと、JPAはStringオブジェクトを作成しようとしますが、代わりにStringPaylodです。作成を傍受し、マーシャルオブジェクトを処理する方法はありますか?

答えて

3

JPA自体では許可されていませんが、JPAの実装では許可されている可能性があります。以前はHibernateでこれを行いましたが、独自のEntityTuplizer(およびHibernateInntceptorを使用してオブジェクトをHibernateEntitiesに戻す)を実装しています。

0

できます。 Tが実装されている場合Serializable

@Entity 
public class IgsSubject extends BasicObject implements Serializable{ 

    private static final long serialVersionUID = -5387429446192609471L; 
関連する問題