JPA... Mapeamento Automatico nao funciona

8 respostas
gobbo

Ola galera...

to com um probleminha

O meu mapeamento aqui nao esta criando tabelas automaticamente

alguem tem uma luz?

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 name="jpa-hibernate">

                
                <properties>
                        <property name="hivernate.hbm2ddl.auto" value="create" />
                        <property name="hivernate.format_sql" value="true" />
                        
                        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
                        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
                        <property name="hibernate.connection.url" value="jdbc:mysql://*********** />                        
                        <property name="hibernate.connection.username" value="root" />                        
                        <property name="hibernate.connection.password" value= ************** />

                </properties>
        </persistence-unit>
</persistence>

GenerateDatabase.class

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

public class GenerateDatabase {
	
	public static void main(String[] args) {
		EntityManagerFactory emf =
			Persistence.
				createEntityManagerFactory("jpa-hibernate");
		
		EntityManager em = emf.createEntityManager();
		
		em.close();
		emf.close();
		
	}
}
User.java
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity public class User {
	
	@Id @GeneratedValue
	private Long id;
	private String nome;
	private String login;
	private String password;
	public Long getId() {
		return id;
	}

	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	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;
	}
	
	
}
log:
29/07/2008 08:48:32 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.4.0.CR1
08:48:32,612  INFO Environment:514 - Hibernate 3.2.6
08:48:32,612  INFO Environment:547 - hibernate.properties not found
08:48:32,612  INFO Environment:681 - Bytecode provider name : cglib
08:48:32,627  INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling
29/07/2008 08:48:32 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.1.0.CR1
08:48:32,737  INFO Version:15 - Hibernate EntityManager 3.3.2.GA
29/07/2008 08:48:34 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: User
29/07/2008 08:48:34 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity User on table User
29/07/2008 08:48:34 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
08:48:34,518  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
08:48:34,518  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 20
08:48:34,518  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
08:48:34,580  INFO DriverManagerConnectionProvider:80 - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://ESGNA018486S01:3306/jpa_hibernate
08:48:34,596  INFO DriverManagerConnectionProvider:86 - connection properties: {user=root, password=****, autocommit=true, release_mode=auto}
08:48:51,251  INFO SettingsFactory:89 - RDBMS: MySQL, version: 5.0.51a-community-nt
08:48:51,251  INFO SettingsFactory:90 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )
08:48:51,282  INFO Dialect:152 - Using dialect: org.hibernate.dialect.MySQLDialect
08:48:51,282  INFO TransactionFactoryFactory:34 - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
08:48:51,282  INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
08:48:51,282  INFO SettingsFactory:143 - Automatic flush during beforeCompletion(): disabled
08:48:51,282  INFO SettingsFactory:147 - Automatic session close at end of transaction: disabled
08:48:51,282  INFO SettingsFactory:154 - JDBC batch size: 15
08:48:51,297  INFO SettingsFactory:157 - JDBC batch updates for versioned data: disabled
08:48:51,297  INFO SettingsFactory:162 - Scrollable result sets: enabled
08:48:51,297  INFO SettingsFactory:170 - JDBC3 getGeneratedKeys(): enabled
08:48:51,297  INFO SettingsFactory:178 - Connection release mode: auto
08:48:51,297  INFO SettingsFactory:202 - Maximum outer join fetch depth: 2
08:48:51,297  INFO SettingsFactory:205 - Default batch fetch size: 1
08:48:51,297  INFO SettingsFactory:209 - Generate SQL with comments: disabled
08:48:51,297  INFO SettingsFactory:213 - Order SQL updates by primary key: disabled
08:48:51,297  INFO SettingsFactory:217 - Order SQL inserts for batching: disabled
08:48:51,297  INFO SettingsFactory:386 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
08:48:51,297  INFO ASTQueryTranslatorFactory:24 - Using ASTQueryTranslatorFactory
08:48:51,297  INFO SettingsFactory:225 - Query language substitutions: {}
08:48:51,297  INFO SettingsFactory:230 - JPA-QL strict compliance: enabled
08:48:51,297  INFO SettingsFactory:235 - Second-level cache: enabled
08:48:51,297  INFO SettingsFactory:239 - Query cache: disabled
08:48:51,297  INFO SettingsFactory:373 - Cache provider: org.hibernate.cache.NoCacheProvider
08:48:51,313  INFO SettingsFactory:254 - Optimize cache for minimal puts: disabled
08:48:51,313  INFO SettingsFactory:263 - Structured second-level cache entries: disabled
08:48:51,313  INFO SettingsFactory:290 - Statistics: disabled
08:48:51,313  INFO SettingsFactory:294 - Deleted entity synthetic identifier rollback: disabled
08:48:51,329  INFO SettingsFactory:309 - Default entity-mode: pojo
08:48:51,329  INFO SettingsFactory:313 - Named query checking : enabled
08:48:51,438  INFO SessionFactoryImpl:161 - building session factory
08:48:51,844  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
08:48:51,954  INFO SessionFactoryImpl:769 - closing
08:48:51,954  INFO DriverManagerConnectionProvider:147 - cleaning up connection pool: jdbc:mysql://ESGNA018486S01:3306/jpa_hibernate

pq ele nao está criando a tabela user?

me ajudem por favor

abs

8 Respostas

jgbt

Adicione essa property:

<property name="hibernate.hbm2ddl.auto" value="update"/>

De uma olhada na documentação para ver os valores possiveis de serem utilizados para criar/atualizar a base de dados.

[]'s

javax.skol

Na verdade já esta adicionada, só que tem um erro de digitação ae

<property name="hivernate.hbm2ddl.auto" value="create" /> <property name="hivernate.format_sql" value="true" />

mude para <property name="hibernate.hbm2ddl.auto" value="create" /> <property name="hibernate.format_sql" value="true" />

gobbo

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

PQP

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Maneh!!!

lol

to labutando aqui ha um tempao e nada

Erro de digitação afff

vlw galera!!!

J

Aew pessoal, estava com problemas tbm relacionados ao Hibernate 3.4

confiram sua lista de libs

postgresql-8.3-604.jdbc4.jar
antlr-2.7.6.jar
slf4j-log4j12.jar
ejb3-persistence.jar
hibernate-annotations.jar
hibernate3.jar
hibernate-commons-annotations.jar
log4j.jar
dom4j-1.6.1.jar
hibernate-core.jar
hibernate-entitymanager.jar
javassist-3.4.GA.jar
jta-1.1.jar
commons-collections-3.1.jar
slf4j-api-1.5.2.jar
c3p0-0.9.1.jar
commons-logging-1.1.1.jar
cglib.jar
antlr.jar
asm.jar

estas libs são o minimo necessario pro JPA funcionar com o hibernate

agora confiram o persistence.xml

?xml version=“1.0” encoding=“UTF-8”?>

<persistence-unit name="DataSource" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>

	<properties>
		<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
		<property name="hibernate.connection.url" value="jdbc:postgresql://127.0.0.1:5432/banco" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
		<property name="hibernate.connection.username" value="xxxxx" />
		<property name="hibernate.connection.password" value="xxxxx" />
		<property name="hibernate.hbm2ddl.auto" value="create" />
		<property name="hibernate.archive.autodetection" value="class,hbm" />
		<property name="hibernate.show_sql" value="true" />
		<property name="hibernate.format_sql" value="true" />
		<property name="hibernate.connection.pool_size" value="0" />
		<property name="hibernate.c3po.min_size" value="5" />
		<property name="hibernate.c3po.max_size" value="20" />
		<property name="hibernate.c3po.timeout" value="300" />
		<property name="hibernate.c3po.max_statements" value="50" />
		<property name="hibernate.c3po.idle_test_period" value="3000" />
	</properties>
</persistence-unit>

e por ultimo, um pequeno conteudo para testar em um metodo … rsrsrs

EntityManagerFactory emf = Persistence.createEntityManagerFactory("DataSource");
	EntityManager em = emf.createEntityManager();
	
	try {
		em.getTransaction().begin();

		// Query q = em.createQuery(" FROM Teste");
		// System.out.println(" sdkbfdskjfgijgfdikg " + q.getResultList());

		em.getTransaction().commit();
	}catch (Exception e) {
		e.printStackTrace();
	} finally {
		em.close();
	}

comigo isso funcionou legal … talvez ainda falte um log4j.properties para que naum tem no projeto, mas sem ele jah funciona … rsrrs

espero ter ajudado !

K

Pessoal eu estou iniciando um projeto exemplar com JPA, e gostaria de saber como faço para maperar dados com JPA e desenvolver uma simples aplicação exemplar com banco de dados e formulários.Suponho que eu devo fazer um banco de dados e depois mapear as entidades da base de dados, feito isso construir as aplicações jsp.Estou certo ou errado ?

P

Olá,

estou participando de um projeto com JPA/Hibernate onde estamos construindo os objetos usando JAva 5 e vamos ler esses
objetos e gerar as tabelas no banco de dados.

É possivel também ter uma base de dados já gerada e fazer a conxão das mesmas pelo JPA/Hibernate…

abs

J

paribe:
Olá,

estou participando de um projeto com JPA/Hibernate onde estamos construindo os objetos usando JAva 5 e vamos ler esses
objetos e gerar as tabelas no banco de dados.

É possivel também ter uma base de dados já gerada e fazer a conxão das mesmas pelo JPA/Hibernate…

abs

No JPA, é possivel mapear classes de acordo com as tabelas já criadas no banco de dados. Existem ferramentas que podem auxiliar a criar a engenharia reversa disso … Ou se preferir, mapeie as classes de deixe o JPA criar as tabelas para vc.

P

pelo NetBeans tem como fazer o reverse lendo as tabelas do banco e gerar os objetos para persistência

eu acho que é a partir da versão 7 (não tenho certeza) pois uso Eclipse …da uma olhada na documentação

abs

Criado 29 de julho de 2008
Ultima resposta 16 de mar. de 2009
Respostas 8
Participantes 6