NativeQuery更好或者是HibernateOGM方法

时间:2016-01-13 11:25:34

标签: java hibernate nativequery hibernate-ogm hibernate-native-query

我正在使用hibernate OGM与我的MongoDB实例进行通信。我必须得到所有类别为if( !empty( $totv ) ){ $sql="SELECT `Wo_Qty` FROM `Work_order` WHERE `B_Name` IN ('" . implode( "','", $totv )."' );"; $res=mysql_query( $sql,$con ); while( $rs=mysql_fetch_array( $res ) ) echo $rs['Wo_Qty']; } 的产品的列表。我正在使用本机查询方法来实现以下目标:

"abc"

我不确定这是否是正确的做法,因为我看到了太多的硬编码(查看集合名称)。我可以使用String stringQuery = "db.Message.find({'CATEGORY':'" + category + "})"; Query query = entityManagerProvider.get().createNativeQuery(stringQuery, Product.class); productList = query.getResultList(); 方法来实现同样的目的吗? 我们使用带有gradle的vertx服务器作为构建工具。

1 个答案:

答案 0 :(得分: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