2011-01-11 43 views
3

是否可以堅持通用字段?JPA通用字段

我有一個Entity

... 
private T payload; 
... 

T extends EventMessagePayload 

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

在我的應用程序這個屬性我只當是字符串類型的持久化領域,並保存操作,所有的偉大工程中。

當我讀對象,而不是JPA嘗試創建String對象,而是一個StringPaylod。有沒有辦法攔截創建和處理對象編組?

回答

3

JPA本身不允許這樣做,但是您的JPA實現可能允許它。我們曾經用Hibernate做過這件事,它實現了你自己的EntityTuplizer(和一個HibernateInterceptor來將你的對象映射回HibernateEntities)。

0

我們可以。如果T器具Serializable

@Entity 
public class IgsSubject extends BasicObject implements Serializable{ 

    private static final long serialVersionUID = -5387429446192609471L;