2011-01-11 4 views
3

Возможно ли сохранение общего поля?JPA generic field

У меня есть это свойство в классе 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

Мы можем. если используются TSerializable

@Entity 
public class IgsSubject extends BasicObject implements Serializable{ 

    private static final long serialVersionUID = -5387429446192609471L;