我正在尝试使用Hibernate OGM事务类型RESOURCE_LOCAL从MongoDB中的单个集合中获取所有数据,如下所示: Persistence.xml
<persistence-unit name="NOSQLPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<class>jpa.nosql.entity.Customer</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
<property name="hibernate.ogm.mongodb.host" value="127.0.0.1"/>
<property name="hibernate.ogm.mongodb.port" value="27017"/>
<property name="hibernate.ogm.mongodb.database" value="test"/>
</properties>
</persistence-unit>
CustomerRepositoryImpl.java
public List<Customer> getAllCustomers() {
return em.createQuery( "SELECT c FROM Customer c", Customer.class ).getResultList();
}
但我收到的错误如下:
org.hibernate.ogm.exception.NotSupportedException: OGM-14 - typed queries are not supported yet
如何获取所有数据而不是按Id查找单行?
答案 0 :(得分:0)
Hibernate OGM应该与您尝试运行的查询一起使用。 我可以在persistence.xml中看到一些错误,但我不确定它们是否与此问题有关。
无论如何,您应该用以下属性替换当前属性:
<property name="hibernate.ogm.datastore.provider" value="mongodb"/>
<property name="hibernate.ogm.datastore.host" value="127.0.0.1:27017"/>
<property name="hibernate.ogm.datastore.database" value="test"/>
您可以在文档中找到更多配置选项:https://docs.jboss.org/hibernate/stable/ogm/reference/en-US/html_single/#_configuring_mongodb
另外,请确保在类路径中包含hibernate-ogm-mongodb dependency
:
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
<version>5.1.0.Final</version>
</dependency>
如果这样做无法解决问题,请尝试添加有关该项目的更多信息。