0
Morfia 0.105 레이어가있는 MondoDB를 사용하고 있습니다.MongoDB/Morphia 크기 쿼리 연산자 오작동?
@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>();
내 테스트 클래스는 다음과 같습니다 :
내 User
클래스입니다 내가 주석 라인 //u.getRights().add(Rights.ADMIN);
에 추가하는 경우
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'
:
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);
}
}
내가이 예상치 못한 결과를 얻었다 사용자가 오른쪽, 쿼리
ds.find(User.class).filter("rights size", 1).get()
corr을 반환합니다. ect 결과 (경고가 표시 되더라도, 그것이 내 의견으로는 크기 연산자의 결과를 정수와 비교하기 때문에 거짓 긍정입니다!)
빈 필드가 rights
인 사용자를 쿼리하려면 어떻게해야합니까?
같은 출력이 작동하지 않습니다 :( – Fuzzo
는 설명 https://github.com/mongodb/morphia/issues/561를 참조하십시오. – evanchooly
그것은 내 오픈 된 문제입니다. 빠른 응답을 주셔서 감사합니다 – Fuzzo