1

我正在使用休眠 OGM 与我的 MongoDB 实例对话。我必须得到一个包含 category 的所有产品的列表"abc"。我正在使用本机查询方法来实现这一点,如下所示:

String stringQuery = "db.Message.find({'CATEGORY':'" + category + "})";
Query query = entityManagerProvider.get().createNativeQuery(stringQuery, Product.class);
productList = query.getResultList();

我不确定这是否是正确的方法,因为我看到了太多的硬编码(查看集合名称)。我可以使用该.find()方法来实现相同的目标吗?我们使用带有 gradle 的 vertx 服务器作为构建工具。

4

1 回答 1

1

你的意思是EntityManager.find()?如果您使用主键进行过滤,则可以使用它。在您的示例中似乎并非如此。

您可以做的是编写一个 JP-QL 查询:

productList = entityManagerProvider.get().createQuery( "SELECT p FROM Product p WHERE p.category=:category", Product.class ).setParameter("category", category).getResultList();

我假设您有一个Product具有属性的实体category

于 2016-01-14T11:17:37.747 回答