@jsilvaneto escreveu:
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 vindamongodb 3.2.10
pom.xml
Entity person.java
java Main.java classe
persistence.xmlpom.xml
-----------------------------pom.xml ----------------------------------------
[/code]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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<properties> <encoding>UTF-8</encoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <!-- MongoDB --> <mongodb.driver.version>3.2.1</mongodb.driver.version> </properties> <repositories> <repository> <id>oss.sonatype.org</id> <name>OSS Sonatype Staging</name> <url>https://oss.sonatype.org/content/groups/staging</url> </repository> <repository> <id>EclipseLink</id> <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url> </repository> <repository> <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> <id>eclipselink</id> <layout>default</layout> <name>Repository for library EclipseLink (JPA 2.0)</name> </repository> </repositories> <dependencies> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.5.0</version> <exclusions> <exclusion> <groupId>org.eclipse.persistence</groupId> <artifactId>commonj.sdo</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.nosql</artifactId> <version>2.4.1</version> </dependency> <!-- JPA --> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>javax.persistence</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>javax.resource</groupId> <artifactId>javax.resource-api</artifactId> <version>1.7-b01</version> </dependency> <!-- MongoDB --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>[1.2, 1.3)</version> </dependency> </dependencies>
-----------------------------Entity Person ---------------------------------------- [code] 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 -------------------------------- [code] <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" 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"> <persistence-unit name="mongodb_dev" transaction-type="RESOURCE_LOCAL"> <class>model.Person</class> <properties> <property name="eclipselink.target-database" value="org.eclipse.persistence.nosql.adapters.mongo.MongoPlatform"/> <property name="eclipselink.nosql.connection-spec" value="org.eclipse.persistence.nosql.adapters.mongo.MongoConnectionSpec"/> <property name="eclipselink.nosql.property.mongo.port" value="27017"/> <property name="eclipselink.nosql.property.mongo.host" value="localhost"/> <property name="eclipselink.nosql.property.mongo.db" value="db_blue_market"/> <property name="eclipselink.logging.level" value="FINE"/> </properties> </persistence-unit> </persistence> [/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<Person> result = new ArrayList<Person>(); 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(); } }
Mensagens: 1
Participantes: 1