我正在尝试使用 GWTs RequestFactory 来(目前)做一些非常简单的事情并返回一个对象列表,每个对象都包含一些数据和另一个对象。我似乎无法得到我的另一个对象——相反,我总是得到空值。
我的代码看起来像这样......
我有一些 UserMessage 对象,每个对象都包含一个 Message 对象。
用户消息
@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
每个都有自己的代理类
用户消息代理
@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();
}
消息代理
@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,我不知道为什么。
我没有收到任何错误或警告。在服务器端,当 RequestFactory 代码调用我的服务类时,我可以“看到” UserMessage 确实包含 Message 对象。
为什么我的对象为空?有没有我不满足的条件?
GWT 2.4 BTW(但在 2.3 中也有问题)