JPA Native Query MongoDB

时间:2014-09-10 08:53:19

标签: java jpa datanucleus

Datanucleus JPA是否支持MongoDB

例如:

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

1 个答案:

答案 0 :(得分:1)

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

import org.datanucleus.ExecutionContext;
import org.datanucleus.store.NucleusConnection;

ExecutionContext ec = em.unwrap(ExecutionContext.class);
NucleusConnection conn = ec.getStoreManager().getNucleusConnection(ec);
DB db = (DB)conn.getNativeConnection();

此后您要使用DB对象,使用后应调用

conn.close();

将其交还给JPA(DataNucleus)。