【发布时间】:2016-09-07 14:59:18
【问题描述】:
我已经有这段代码了:
EntityManager entityManager = getEntityManager();
entityManager.getTransaction().begin();
String query = "db.Band.find({})";
List<Band> list = (List<Band>) entityManager.createNativeQuery(query, Band.class).getResultList();
entityManager.close();
return list;
它返回一个List 没有问题。现在我想按date 对List 进行排序:
EntityManager entityManager = getEntityManager();
entityManager.getTransaction().begin();
String query = "db.Band.find({something__id:ObjectId(\"" + myId + "\")}).sort({\"somethingelse.date\":-1})";
List<Band> list = (List<Band>) entityManager.createNativeQuery(query, Band.class).getResultList();
entityManager.close();
return list;
我的控制台给了我这个消息:
org.bson.json.JsonParseException: JSON reader was expecting a value but found 'db'
我检查了我的 String 在 Mongo 控制台中是否正常工作,并且确实如此。有什么想法吗?
编辑:我尝试将“something__id”放在引号之间,因为如果我不这样做,即使没有排序部分(我刚刚意识到),它也无法工作,但现在它说我正在做一个不受支持的本机查询,指出排序部分。是否应该在已经将它放在 List 对象中之后对其进行排序?
【问题讨论】:
-
我的猜测是您对该特定 API 使用了错误的查询格式。
标签: java json mongodb entitymanager