2011-01-11 60 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;