質問はばかげているように思えるかもしれませんが、私にとって循環参照とは、たとえば、オブジェクト A がオブジェクト B を参照し、かつオブジェクト B がオブジェクト A を参照することです。
objectify DBを使用してGAEサーバーと通信するAndroidアプリケーションで作業しています。
私のモデルは非常に単純ですが、エラーが発生します。
org.codehaus.jackson.map.JsonMappingException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->com.my.model.MyMessage["senderKey"]->com.googlecode.objectify.Key["root"])
ここに私のモデルがあります: MyMessage は MyUser を参照します (MyUser DOESNT は MyMessage を参照します...
コードは次のとおりです。
public class MyMessage implements Serializable {
private static final long serialVersionUID = -1075184303389185795L;
@Id
private Long id;
@Unindexed
private String sendMessage;
@Unindexed
private String answerMessage;
private MessageStatus status = MessageStatus.FREE;
@Parent
Key<MyUser> senderKey;
Key<MyUser> answererKey;
@SuppressWarnings("unused")
private MyMessage() {
}
public MyMessage(MyUser user, String message) {
super();
this.sendMessage = message;
this.senderKey = new Key<MyUser>(MyUser.class, user.getId());
}
[... getters and setters ...]
}
.
public class MyUser implements Serializable {
private static final long serialVersionUID = 7390103290165670089L;
@Id private String id;
@SuppressWarnings("unused")
private MyUser() {
this.setId("default");
}
public MyUser(String mail) {
this.setId(mail);
}
public void setId(String mail) {
this.id = mail;
}
public String getId() {
return id;
}
}
では、直接自己参照とは正確には何ですか?? 私のモデルの何が問題になっていますか??
ありがとうございました。