morphia @Reference注解

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 members;

    public String getMemberId() {
        return uid;
    }

    public void setMemberId(String uid) {
        this.uid = uid;
    }

    public List getMemberInfo() {
        return members;
    }

    public void setMemberInfo(List members) {
        this.members = members;
    }

    public static class Dao extends MorphiaDao {
        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对象的方法。


你可能感兴趣的:(Morphia)