0
我使用MondoDB和Morphia 0.105图层。MongoDB/Morphia大小查询操作失败?
我User
类是:
@Entity
public class User {
@Id
private ObjectId id = null;
private String userId = null;
private String fullName = null;
@Embedded
private UserType userType = null;
@Embedded
private Set<Rights> rights = new HashSet<Rights>();
和我的测试类是:
public class Test {
public static void main(String[] args) throws UnknownHostException {
Morphia m = new Morphia();
Datastore ds = m.createDatastore(new MongoClient("localhost"), "test");
m.map(User.class);
User u = new User();
u.setFullName("User Name");
u.setUserId("USERID");
//u.getRights().add(Rights.ADMIN); //NO rights added VS ONE right added
ds.save(u);
u = ds.find(User.class).filter("rights size", 0).get();
System.out.println(u);
System.out.println(u != null);
}
}
我得到这个意外的结果:
The type(s) for the query/update may be inconsistent; using an instance of type 'java.lang.Integer' for the field 'org.vts.sis2.entities.User.rights' which is declared as 'java.util.Set'
如果我取消线//u.getRights().add(Rights.ADMIN);
,增加了用户权限,查询ds.find(User.class).filter("rights size", 1).get()
返回更正等结果(即使显示警告,但这是一个误报,因为在我看来,将大小运算符的结果与整数进行比较是正确的)!
我该如何查询空rights
list/set字段的用户?
感谢
的输出结果相同,没有工作:( – Fuzzo
见https://github.com/mongodb/morphia/issues/561一个解释。 – evanchooly
这是我的问题,谢谢你的回复! – Fuzzo