Я пытаюсь использовать GWTs RequestFactory, чтобы (на данный момент) сделать что-то очень простое и вернуть список объектов, каждый из которых содержит некоторые данные и другой объект.Кажется, я не могу получить свой другой объект - вместо этого я всегда получаю ноль.
Мой код выглядит примерно так ...
У меня есть несколько объектов UserMessage, каждый из которых включает в себя объект сообщения.
UserMessage
@Entity
public class UserMessage implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@Version
private Integer version = 0;
@ManyToOne
@JoinColumn(name = "messageId")
private Message message;
private String user;
private int priority;
private boolean read;
private Date expiry;
private boolean sent;
... getter/setters etc
Сообщение
@Entity(name = "UUMessage")
public class Message implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@Version
private Integer version = 0;
private String title;
private String mimeType;
private String message;
private Date received;
private String fromUser;
public Message() {
}
... getter/setters etc
каждый со своими прокси-классами
UserMessageProxy
@ProxyFor(value = UserMessage.class, locator = UserMessageLocator.class)
public interface UserMessageProxy extends EntityProxy {
Long getId();
void setId(Long id);
MessageProxy getMessage();
void setMessage(MessageProxy message);
String getUser();
}
MessageProxy
@ProxyFor(value = Message.class, locator = MessageLocator.class)
public interface MessageProxy extends EntityProxy {
Long getId();
void setId(Long id);
String getTitle();
void setTitle(String title);
}
У меня есть фабрика и контекст
@Service(value = CentralNotificationService.class, locator = CentralNotificationServiceLocator.class)
public interface CnsRequestContext extends RequestContext {
Request<List<UserMessageProxy>> getMessagesForUser(String user, int start, int length);
}
Когда я вызываю getMessagesForUser (...) на клиенте вызывается мой сервисный код на стороне сервера, извлекаются записи в базе данных, и я получаю список UserMessageProxy, возвращаемый клиенту.К сожалению, вызывая getMessage () для любого из этих значений, возвращает null, и я не могу понять, почему.
Я не получаю никаких ошибок или предупреждений.На стороне сервера я могу «видеть», что UserMessage содержит объекты Message, когда код RequestFactory вызывает мои классы обслуживания.
Почему мои объекты имеют значение null?Есть ли какие-либо условия, которые меня не удовлетворяют?
GWT 2.4 BTW (но также были проблемы с 2.3)