Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Jpa e mongodb nonsql EclipseLink

$
0
0

@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 vinda

mongodb 3.2.10

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

pom.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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>