Java JPA本机查询MongoDB

Java JPA本机查询MongoDB,java,jpa,datanucleus,Java,Jpa,Datanucleus,Datanucleus JPA是否支持MongoDB 例如: entityManager.createNativeQuery("db.Movie.find()"); 做你正在做的事情没有什么意义。我的意思是,您可以访问底层MongoDB“DB”对象(JPA正在使用)并使用本机MongoDB API进行操作,而不是期望DataNucleus发明一些分层的人工查询语言(这个字符串DB.BLAH.find()在MongoDB本机API中不存在,而是执行DB.getCollection(“BLAH”)

Datanucleus JPA是否支持MongoDB

例如:

entityManager.createNativeQuery("db.Movie.find()");

做你正在做的事情没有什么意义。我的意思是,您可以访问底层MongoDB“DB”对象(JPA正在使用)并使用本机MongoDB API进行操作,而不是期望DataNucleus发明一些分层的人工查询语言(这个字符串DB.BLAH.find()在MongoDB本机API中不存在,而是执行DB.getCollection(“BLAH”)然后施加约束等,最后对其调用find()。相反,你可以试试这样的方法

此后,您就有了要使用的DB对象,使用之后应该调用

conn.close();

将其交还给JPA(DataNucleus)。

谢谢您的回复@konstantiv.Salikhov。我试过了,但是它返回null并且没有抛出任何异常。所以我需要知道是否可以做到,为什么不直接执行一个JPQL查询“从电影m中选择m”?你认为在幕后会执行什么?假设你不是在看日志you@BillyFrostJPQL只执行与实体相关的namedQuerys,但我正在尝试一种方法,我可以给MongoDB native find()方法并得到结果。谢谢@BillFrost+1:)
conn.close();