Я использую hibernate OGM, чтобы поговорить с моим экземпляром MongoDB. Мне пришлось получить список всех продуктов с категорией "abc"
. Я использую родной подход запросов для достижения этой цели следующим образом:NativeQuery лучше или HibernateOGM методы
String stringQuery = "db.Message.find({'CATEGORY':'" + category + "})";
Query query = entityManagerProvider.get().createNativeQuery(stringQuery, Product.class);
productList = query.getResultList();
Я не уверен, что это правильный подход, чтобы сделать это, как я вижу слишком много жесткого кодирования (смотрите на название коллекции). Могу ли я использовать метод .find()
для достижения того же? Мы используем сервер vertx с градиентом в качестве инструмента построения.
Будет ли это работать с mongoDB? И это лучший подход, а затем использование nativeQuery? –
Да, он будет работать с MongoDB. Я думаю, что это лучший подход, потому что он переносимый. Тот же запрос будет работать и с другими хранилищами данных, как в тот момент, когда вы собираетесь менять бэкэнд. Hibernate OGM также сможет адаптировать запрос, если вы измените некоторые вещи о сопоставлении. – Davide