morphia @Reference注解

来源:互联网 发布:登陆淘宝账户 编辑:程序博客网 时间:2024/06/10 11:16

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对象的方法。


原创粉丝点击