2012-03-10 2 views
1

Я использую GWT, Hibernate и Галаад, и я не избавиться от исключения сериализации:сериализация исключения в спящем режиме присоединиться заявлением

com.google.gwt.user.client.rpc.SerializationException: Type '[Ljava.lang.Object;' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized. 

Я делаю РЕГИСТРИРУЙТЕСЬ в Hibernate Query Language, который заставляет ошибка:

List<UserEvent> userEvents = session.createQuery(
    "FROM UserEvent as userevent JOIN userevent.event as event WHERE userevent.user = ? AND userevent.status = 'JOIN' ORDER BY event.eventBegin ASC") 
    .setLong(0, user.getUserID()).setFirstResult(start).setMaxResults(maxResult).list(); 

код для классов:

@Entity 
public class UserEvent extends LightEntity implements Serializable { 

    private static final long serialVersionUID = -291120580889352994L; 

    @Id 
    @ManyToOne 
    @JoinColumn(name = "user_userid") 
    private User user; 

    @Id 
    @ManyToOne 
    @JoinColumn(name = "event_eventid") 
    private Event event; 

    @Enumerated(EnumType.STRING) 
    private EventStatus status; 

    private Long time; 

    public UserEvent() { 

    } 



@Entity 
public class Event extends LightEntity implements Serializable { 

    private static final long serialVersionUID = -2504468186803850440L; 

    @Id 
    @GenericGenerator(name = "event_seq", strategy = "webapp.hibernate.EventSeq") 
    @GeneratedValue(generator = "event_seq") 
    private Long eventID; 

    private Long eventBegin; 

    public Event() { 

    } 

KNO ли кто-нибудь ws решение для этого?

ответ

0

Проблема вы видите здесь из-за того, что объект, который загружается при вызове

query.list() 

не загружается UserEvents. Он загружает динамический прокси UserEvent. Hibernate использует прокси-объекты для перехвата вызовов для ленивых загруженных связанных объектов.

Есть библиотеки, которые могут помочь с этим (EG http://www.jboss.org/errai).

Еще одна вещь, которую вы можете сделать, - это преобразовать сущности JPA в POJO, прежде чем пытаться их сериализовать, что должно обеспечить, чтобы прокси не мешали.