1、lazy的值为true时,是懒加载:
@Reference(lazy = true)
@DB("member")
@Entity(value = "follow",noClassnameStored=true)
public class Follow implements SimpleBean{
@Id
private String uid;
@Reference(lazy = true)
private List<MemberInfo> members;
public String getMemberId() {
return uid;
}
public void setMemberId(String uid) {
this.uid = uid;
}
public List<MemberInfo> getMemberInfo() {
return members;
}
public void setMemberInfo(List<MemberInfo> members) {
this.members = members;
}
public static class Dao extends MorphiaDao<Follow> {
public Dao() {
super(Follow.class);
}
public Follow myFollow(String uid) {
return this.findOneBy("uid", uid);
}
}
}
当lazy为true时,
public Follow myFollow(String uid) {
return this.findOneBy("uid", uid);
}
会报错:
java.lang.ClassCastException: $java.util.ArrayList$$EnhancerByCGLIB$$f9cb7deb cannot be cast to org.mongodb.morphia.mapping.lazy.proxy.ProxiedEntityReferenceList
2、解决办法:
将lazy的值设为false即可。
3、目前没有找到为true时的获取Follow对象的方法。