私は GWT の RequestFactory を使用して (現時点では) 非常に単純なことを行い、それぞれがいくつかのデータと別のオブジェクトを含むオブジェクトのリストを返そうとしています。他のオブジェクトを取得できないようです-代わりに、常にnullを取得します。
私のコードは次のようになります...
それぞれ Message オブジェクトを含む 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();
}
メッセージプロキシ
@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 オブジェクトが含まれていることを「確認」できます。
オブジェクトが null になるのはなぜですか? 満たされていない条件はありますか?
GWT 2.4 BTW (ただし、2.3 でも問題がありました)