Problema com o persistence.xml no openjpa

1 resposta
claudneysessa
ESTOU REALIZANDO ALGUNS TESTE POIS ESTOU INICIANDO EM JAVA E JA FUNCIONOU PARA TOPLINK-ESSENTIALS, ECLIPSELINK E HIBERNATE SÓ FALTA O OPENJPA PARA EU TERMINAR O MEUS TESTES.... ESTOU UTILIZANDO O APACHE OPENJPA TENHO AS CLASSES
package sessa.claudney.jpa.openjpa;
import java.util.Properties;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class GenerateDatabase {
 public static void main(String[] args) {
  Properties cfg = new Properties();
  cfg.setProperty("openjpa.ddl-generation" ,"drop-and-create-tables"); 
 
  EntityManagerFactory emf= Persistence.createEntityManagerFactory("jpa-openjpa",cfg);
  EntityManager em = emf.createEntityManager();
 
  em.close();  //Fechando o EntityManager
  emf.close(); //Fechando o EntityManagerFactory
 
 }
 
}
package sessa.claudney.jpa.openjpa;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private long id;
 
 @Column(name="full_name")
 private String name;
 
 @Column(length=50)
 private String login;
 
 @Column(name="pwd",length=40)
 private String password;
 
 public long getId() {
  return id;
 }
 
 //Será utilizado via notação
 // I want need it!
 //public void setId(long id) {
 // this.id = id;
 //}
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public String getLogin() {
  return login;
 }
 
 public void setLogin(String login) {
  this.login = login;
 }
 
 public String getPassword() {
  return password;
 }
 
 public void setPassword(String password) {
  this.password = password;
 }
 
}
O ARQUIVO DE CONFIGURAÇÃO É ESTE:
<persistence 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/percistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
  version="1.0">
  <persistence-unit name="jpa-openjpa" >  
  <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>  
     <properties>
        <property name="openjpa.ddl-generation" value="drop-and-create-tables" />
        <property name="openjpa.dialect" value="org.apache.openjpa.jdbc.sql.MySQLDictionary" />    
        <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/jpa_openjpa"/>  
        <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>  
        <property name="openjpa.ConnectionUserName" value="root"/>  
        <property name="openjpa.ConnectionPassword" value="123456"/>  
     </properties>  
    </persistence-unit>  
</persistence>
E ESTA DANDO ESTE ERRO AI....
10  jpa-openjpa  WARN   [main] openjpa.Runtime - The configuration property named "openjpa.ddl-generation" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.ManagedRuntime".
10  jpa-openjpa  WARN   [main] openjpa.Runtime - The configuration property named "openjpa.dialect" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Sequence".
80  jpa-openjpa  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.1
320  jpa-openjpa  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary".

1 Resposta

claudneysessa

ESTIVE PESQUISANDO UM POUCO MAIS E DESCOBRI MAIS ALGUMAS CONFIGURAÇÕES INCLUSIVE A DO DIALETO MYSQL

PERSISTENCE.XML

<?xml version="1.0" encoding="UTF-8"?>
  <persistence xmlns="http://java.sun.com/xml/ns/persistence"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit transaction-type="RESOURCE_LOCAL" name="jpa-openjpa">
  <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
  <class>sessa.claudney.jpa.openjpa.User</class>
  <exclude-unlisted-classes>false</exclude-unlisted-classes>
     <properties>
		<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/jpa_openjpa"/>
		<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
		<property name="openjpa.ConnectionUserName" value="root"/>
		<property name="openjpa.ConnectionPassword" value="123456"/>
		<property name="openjpa.Log" value="DefaultLevel=WARN,Tool=INFO"/>
		<property name="openjpa.jdbc.DBDictionary" value="mysql(SupportsSubselect=true)" />
		<property name="openjpa.Log" value="DefaultLevel=INFO" />
		<property name="openjpa.AutoDetach" value="close" />
		<property name="openjpa.DetachState" value="all" />
		<property name="openjpa.DataCache" value="false" />
		<property name="openjpa.Optimistic" value="true" />
		<property name="openjpa.Multithreaded" value="true" />
		<property name="openjpa.TransactionMode" value="local" />
		<property name="openjpa.NontransactionalRead" value="true" />
		<property name="openjpa.RestoreState" value="all" />
		<property name="openjpa.jdbc.SynchronizeMappings"value="false" />
     </properties>   
    </persistence-unit>   
</persistence>

[color=#444444]POREM AINDA TENHO ERROS[/color]

[color=red]
Exception in thread "main" javax.persistence.PersistenceException: Provider error. Provider: org.apache.openjpa.persistence.PersistenceProviderImpl
	at javax.persistence.Persistence.createFactory(Persistence.java:175)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:111)
	at sessa.claudney.jpa.openjpa.GenerateDatabase.main(GenerateDatabase.java:15)
Caused by: <openjpa-1.2.1-r752877:753278 nonfatal general error> org.apache.openjpa.util.GeneralException: org.xml.sax.SAXException: file:/D:/Eclipse%20Workspace/jpa-openjpa/bin/META-INF/persistence.xml [Location: Line: 25, C: 52]: org.xml.sax.SAXParseException: Element type "property" must be followed by either attribute specifications, ">" or "/>".
	at org.apache.openjpa.lib.meta.XMLMetaDataParser.parseNewResource(XMLMetaDataParser.java:379)
	at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:318)
	at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:295)
	at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:268)
	at org.apache.openjpa.persistence.PersistenceProductDerivation$ConfigurationParser.parse(PersistenceProductDerivation.java:509)
	at org.apache.openjpa.persistence.PersistenceProductDerivation.parseResources(PersistenceProductDerivation.java:359)
	at org.apache.openjpa.persistence.PersistenceProductDerivation.load(PersistenceProductDerivation.java:326)
	at org.apache.openjpa.persistence.PersistenceProductDerivation.load(PersistenceProductDerivation.java:161)
	at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:77)
	at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:109)
	at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:53)
	at javax.persistence.Persistence.createFactory(Persistence.java:171)
	... 2 more
[/color]

ABAIXO MANDO A CLASSE: GENERATEDATABASE MODIFICADA

package sessa.claudney.jpa.openjpa;

import java.util.Properties;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class GenerateDatabase {

	public static void main(String[] args) {

		Properties cfg = new Properties();
		cfg.setProperty("openjpa.ddl-generation" ,"drop-and-create-tables");		
		EntityManagerFactory emf= Persistence.createEntityManagerFactory("jpa-openjpa",cfg);
		EntityManager em = emf.createEntityManager();
		
		em.close();  //Fechando o EntityManager
		emf.close(); //Fechando o EntityManagerFactory
		
	}	
	
}

[size=18][color=red]SE ALGUEM PUDER DAR UMA FORÇA EU AGRADEÇO!!!![/color][/size]

Criado 7 de outubro de 2009
Ultima resposta 8 de out. de 2009
Respostas 1
Participantes 1