Jpa e mongodb nonsql EclipseLink

1 resposta
J

Olá
Pessoa estou tentando configurar o mongodb com jpa e estou tendo um pequeno erro :

Caused by: java.lang.NoSuchMethodError: com.mongodb.Mongo.getVersion()Ljava/lang/String;

Ao executa a classe Main.java
Vou publicar tudo que fiz até agora:
Qualquer ajuda será bem vinda

mongodb 3.2.10

pom.xml
Entity person.java
java Main.java classe
persistence.xml

pom.xml
-----------------------------pom.xml ----------------------------------------

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.BasicoJpaEclipselink
BasicoJpaEclipselink
0.0.1-SNAPSHOT


UTF-8
1.8
1.8

3.2.1



oss.sonatype.org
OSS Sonatype Staging
https://oss.sonatype.org/content/groups/staging


EclipseLink
http://download.eclipse.org/rt/eclipselink/maven.repo


http://download.eclipse.org/rt/eclipselink/maven.repo/
eclipselink
default
Repository for library EclipseLink (JPA 2.0)




org.eclipse.persistence
eclipselink
2.5.0


org.eclipse.persistence
commonj.sdo




org.eclipse.persistence
org.eclipse.persistence.nosql
2.4.1



org.eclipse.persistence
eclipselink
2.5.1


org.eclipse.persistence
javax.persistence
2.0.0


javax.resource
javax.resource-api
1.7-b01



org.mongodb
mongodb-driver
3.2.1



log4j
log4j
[1.2, 1.3)


-----------------------------Entity Person ----------------------------------------

package model;

import java.io.Serializable;
import javax.persistence.*;
import org.eclipse.persistence.nosql.annotations.DataFormatType;
import org.eclipse.persistence.nosql.annotations.Field;
import org.eclipse.persistence.nosql.annotations.NoSql;

/**
* @author Jose Neto
*/

@SuppressWarnings("all")
@Entity
@NoSql(dataType="person", dataFormat=DataFormatType.MAPPED)
public class Person implements Serializable {
/* The id uses the generated OID (UUID) from Mongo. */

@Id
@GeneratedValue
@Field(name = "_id")
private String _id;

@Basic
private String nome;

public Person() {
}

public String get_id() {
return _id;
}

public void set_id(String _id) {
this._id = _id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

}

[/code]

-----------------------------------persistence .xml --------------------------------


xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">


model.Person










[/code]

--------------------------------------Java com methodo main.java para executa uma query

[code]

package model;

import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
import model.Person;
@SuppressWarnings("all")
public class Main
{

private static EntityManagerFactory factory;

public static void main(String args[])
{

factory = Persistence.createEntityManagerFactory("mongodb_dev");
EntityManager manager = factory.createEntityManager();
EntityTransaction tx = manager.getTransaction();
try
{
List result = new ArrayList();
Query q = manager.createQuery(" SELECT p FROM Person p ");
result = q.getResultList();
System.out.println(result.size());
}
catch (Exception e)
{
System.err.println("Error persisting data : " + e.getMessage());
if (tx.isActive())
{
tx.rollback();
}
manager.close();
return;
}
finally
{
if (tx.isActive())
{
tx.rollback();
}
manager.close();
}

manager.close();
}
}

1 Resposta

Daniel_Dias

Tente outra versão do driver do MongoDB.
Provavelmente o EclipseLink ainda não suporte o Drive atual.

Criado 7 de outubro de 2016
Ultima resposta 11 de out. de 2016
Respostas 1
Participantes 2