У меня уже работает этот код:
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
без проблем. Теперь я хочу отсортировать List
по date
:
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» между кавычками, потому что это не сработало бы даже без части сортировки, если бы я этого не сделал (я только что это понял), но теперь он говорит, что я делаю неподдерживаемый собственный запрос, указывая на часть сортировки . Должен ли я сортировать его после того, как он уже есть в объекте списка?