0

我正在尝试将 hibernate-ogm 与 mongodb 一起使用并且没有出现此类错误

持久性.xml

<persistence-unit name="mongodb-test" transaction-type="JTA">        
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<properties>
<property name="hibernate.ogm.datastore.provider" value="mongodb"></property>
<property name="hibernate.ogm.datastore.host" value="192.168.0.237"></property>
<property name="hibernate.ogm.datastore.create_database" value="true"></property>
<property name="hibernate.ogm.datastore.database" value="anand_test"></property>
<property name="hibernate.ogm.mongodb.connection_timeout" value="5000"></property>
<property name="hibernate.ogm.mongodb.authentication_mechanism" value="PLAIN"></property>
<property name="hibernate.ogm.datastore.document.association_storage" value="IN_ENTITY"></property>
<property name="hibernate.ogm.mongodb.association_document_storage" value="GLOBAL_COLLECTION"></property>
<property name="hibernate.ogm.mongodb.write_concern" value="ACKNOWLEDGED"></property>
<property name="hibernate.ogm.mongodb.read_preference" value="PRIMARY_PREFERRED"></property>
</properties>
</persistence-unit>

人.java

import javax.persistence.Entity;
import javax.persistence.Id;
import org.bson.types.ObjectId;
import org.hibernate.annotations.Type;

@Entity
public class Person {            
@Id
@Type(type = "objectid")
private String id;         
private String firstName;
private String lastName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}   
public Person(){        
}

public Person(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
}

TestMongoconnection.java

import com.mongodb.Person;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TestMongoConnection {
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory =          Persistence.createEntityManagerFactory("mongodb-test");
EntityManager manager = entityManagerFactory.createEntityManager();
manager.getTransaction().begin();
Person anandMohan = new Person("Anand","Mohan");
manager.persist(anandMohan);
manager.getTransaction().commit();        
manager.close();
}
}

我有 mongodb 版本 3.0.2 和 hibernate-ogm 4.2.0 final 和 mongodb java 版本 3.x jars

4

1 回答 1

0

问题在于 mongodb 的 java jar 版本,因为尚不支持 3.x 版本,必须使用 2.x 版本

https://forum.hibernate.org/viewtopic.php?f=31&t=1040127&p=2485319#p2485319

于 2015-06-12T06:20:38.653 回答