Java 实体管理器 - JSON 阅读器期待一个值但发现 'db'

标签 java json mongodb entitymanager

我的代码已经可以运行了:

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 没有问题。现在我想按 dateList 进行排序:

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”放在引号之间,因为如果我不这样做,即使没有排序部分它也不会工作(我刚刚意识到),但现在它说我正在做一个不受支持的 native 查询,指出排序部分。我是否应该在我已经将它放入 List 对象后对其进行排序?

最佳答案

这个答案来晚了,但我多年来一直在与同一个问题作斗争,所以也许它会对其他人有所帮助。

根据 this forum post ,键和值都必须用引号引起来,因此您的 something__id 应该是 "something__id"

关于Java 实体管理器 - JSON 阅读器期待一个值但发现 'db',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373302/

相关文章:

ruby-on-rails - 将文件发送到 Rails JSON API

java - JSON对所有对象都有唯一的键,如何使用GSON转换为POJO?

mongodb - 返回按几何分组的 MongoDB 结果

java - 我无法在基本的联系人管理器应用程序上找出 JSP Struts2 错误

java - java中的单例模式。惰性初始化

java - 如何获取Android中textView的最大长度?

java背景透明

ruby-on-rails - Rails 在 JSON 中以不同方式编码 HTML,相同版本

json - MongoDB 在具有未知键的集合中查找

javascript - mongoose:如何仅在保存数据时设置默认值(而不是在获取数据时)?