Iniciando com JPA erro não consigo solucionar

11 respostas
java
R
identar texto pre-formatado em 4 espaços

Texto pré-formatadopackage br.com.persistidor;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import br.com.automovel.Automovel;

public class PersistidorDeAutomovel {

public static void main(String[] args) {
	
	EntityManager em = JPAUtil.getEntityManager();
	
	Automovel auto = new Automovel();
	
	auto.setAnoFabricacao(2014);
	auto.setMarca("Ferrari");
	auto.setModelo("La Ferrari");
	auto.setObservacoes("Nunca foi batito");
	
	EntityTransaction tx = em.getTransaction();
	tx.begin();
	em.persist(auto);
	tx.commit();
	
	em.close();
	
	
}

}Texto pré-formatado

11 Respostas

R

package br.com.automovel;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

@Entity
public class Automovel {

@Id @GeneratedValue
private Long id;
private String marca;
private String modelo;
private Integer anoFabricacao;
private Integer anoModelo;
private String observacoes;




public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getMarca() {
	return marca;
}

public void setMarca(String marca) {
	this.marca = marca;
}

public String getModelo() {
	return modelo;
}

public void setModelo(String modelo) {
	this.modelo = modelo;
}

public Integer getAnoFabricacao() {
	return anoFabricacao;
}

public void setAnoFabricacao(Integer anoFabricacao) {
	this.anoFabricacao = anoFabricacao;
}

public Integer getAnoModelo() {
	return anoModelo;
}

public void setAnoModelo(Integer anoModelo) {
	this.anoModelo = anoModelo;
}

public String getObservacoes() {
	return observacoes;
}

public void setObservacoes(String observacoes) {
	this.observacoes = observacoes;
}





package br.com.automovel;
import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

@Entity
public class Automovel {

@Id @GeneratedValue
private Long id;
private String marca;
private String modelo;
private Integer anoFabricacao;
private Integer anoModelo;
private String observacoes;




public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getMarca() {
	return marca;
}

public void setMarca(String marca) {
	this.marca = marca;
}

public String getModelo() {
	return modelo;
}

public void setModelo(String modelo) {
	this.modelo = modelo;
}

public Integer getAnoFabricacao() {
	return anoFabricacao;
}

public void setAnoFabricacao(Integer anoFabricacao) {
	this.anoFabricacao = anoFabricacao;
}

public Integer getAnoModelo() {
	return anoModelo;
}

public void setAnoModelo(Integer anoModelo) {
	this.anoModelo = anoModelo;
}

public String getObservacoes() {
	return observacoes;
}

public void setObservacoes(String observacoes) {
	this.observacoes = observacoes;
}

}

}

R

package br.com.persistidor;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class JPAUtil {

private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("default");

public static EntityManager getEntityManager() {
	return emf.createEntityManager();
}

}

R

O erro que gera é esse aqui

out 08, 2017 12:08:45 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation

INFO: HHH000204: Processing PersistenceUnitInfo [

name: default

]

out 08, 2017 12:08:46 PM org.hibernate.Version logVersion

INFO: HHH000412: Hibernate Core {5.0.12.Final}

out 08, 2017 12:08:46 PM org.hibernate.cfg.Environment 

INFO: HHH000206: hibernate.properties not found

out 08, 2017 12:08:46 PM org.hibernate.cfg.Environment buildBytecodeProvider

INFO: HHH000021: Bytecode provider name : javassist

out 08, 2017 12:08:46 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager 

INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/automoveis]

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001001: Connection properties: {user=root, password=****}

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001003: Autocommit mode: false

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections 

INFO: HHH000115: Hibernate connection pool size: 20 (min=1)

Sun Oct 08 12:08:46 BRT 2017 WARN: Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to false. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

out 08, 2017 12:08:46 PM org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator initiateService

WARN: HHH000342: Could not obtain connection to query metadata : Unable to resolve name [org.hibernate.dialect.MYSQLInnoDBDialect] as strategy [org.hibernate.dialect.Dialect]

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.persistidor.PersistidorDeAutomovel.main(PersistidorDeAutomovel.java:12)

Caused by: javax.persistence.PersistenceException: Unable to build entity manager factory

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:66)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)

at br.com.persistidor.JPAUtil.(JPAUtil.java:9)

 1 more

Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:228)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)

at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)

 4 more

Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MYSQLInnoDBDialect] as strategy [org.hibernate.dialect.Dialect]

at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:113)

at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:162)

at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:126)

at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:120)

at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:74)

at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:51)

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)

at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:254)

 15 more
J

Problema ta no persistence.xml

Could not obtain connection to query metadata : Unable to resolve name [org.hibernate.dialect.MYSQLInnoDBDialect] as strategy [org.hibernate.dialect.Dialect]

R
<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="default">
	<properties>
					
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/automoveis"/>
		<property name="javax.persistence.jdbc.user" value="root"/>
		<property name="javax.persistence.jdbc.password" value="Tamires90()"/>
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
		<property name="hibernate.dialect" value="org.hibernate.dialect.MYSQLInnoDBDialect"/>
		<property name="hibernate.hbm2ddl.auto" value="upadate"/>
		
	</properties>

</persistence-unit>
J

http://docs.jboss.org/hibernate/core/3.5/reference/en/html/session-configuration.html#configuration-optional-dialects

R

mas as configurações do meu persistence estão erradas

J

Está afirmando ou perguntando?

Coloca isso: org.hibernate.dialect.MySQLInnoDBDialect é case sensitive Ou tenta outro dialect.

R

entendi troquei agora esta com outro erro

R
out 08, 2017 1:09:59 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation

INFO: HHH000204: Processing PersistenceUnitInfo [

name: default

]

out 08, 2017 1:09:59 PM org.hibernate.Version logVersion

INFO: HHH000412: Hibernate Core {5.0.12.Final}

out 08, 2017 1:09:59 PM org.hibernate.cfg.Environment 

INFO: HHH000206: hibernate.properties not found

out 08, 2017 1:09:59 PM org.hibernate.cfg.Environment buildBytecodeProvider

INFO: HHH000021: Bytecode provider name : javassist

out 08, 2017 1:09:59 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager 

INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}

out 08, 2017 1:09:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)

out 08, 2017 1:09:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/automoveis]

out 08, 2017 1:09:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001001: Connection properties: {user=root, password=****}

out 08, 2017 1:09:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH10001003: Autocommit mode: false

out 08, 2017 1:09:59 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections 

INFO: HHH000115: Hibernate connection pool size: 20 (min=1)

Sun Oct 08 13:09:59 BRT 2017 WARN: Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to false. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

out 08, 2017 1:09:59 PM org.hibernate.dialect.Dialect 

INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect

out 08, 2017 1:09:59 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl 

WARN: Unrecognized hbm2ddl_auto value : upadate.  Supported values include create, create-drop, update, and validate.  Ignoring

Sun Oct 08 13:10:00 BRT 2017 WARN: Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to false. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

out 08, 2017 1:10:00 PM org.hibernate.id.enhanced.TableStructure$1$1 execute

ERROR: could not read a hi value

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table automoveis.hibernate_sequence doesnt exist

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)

at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)

at org.hibernate.id.enhanced.TableStructure.executeQuery(TableStructure.java:224)

at org.hibernate.id.enhanced.TableStructure.access$300(TableStructure.java:46)

at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:139)

at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)

at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)

at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:56)

at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:125)

at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)

at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:412)

at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)

at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)

at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)

at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)

at br.com.persistidor.PersistidorDeAutomovel.main(PersistidorDeAutomovel.java:23)
out 08, 2017 1:10:00 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

WARN: SQL Error: 1146, SQLState: 42S02

out 08, 2017 1:10:00 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

ERROR: Table automoveis.hibernate_sequence doesnt exist

Exception in thread main javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: error performing isolated work

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1152)

at br.com.persistidor.PersistidorDeAutomovel.main(PersistidorDeAutomovel.java:23)

Caused by: org.hibernate.exception.SQLGrammarException: error performing isolated work

at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)

at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)

at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:78)

at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:125)

at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)

at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:412)

at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)

at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)

at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)

at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)

 1 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table automoveis.hibernate_sequence doesnt exist

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)

at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)

at org.hibernate.id.enhanced.TableStructure.executeQuery(TableStructure.java:224)

at org.hibernate.id.enhanced.TableStructure.access$300(TableStructure.java:46)

at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:139)

at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)

at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)

at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)

at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:56)

 13 more
J

Tenta trocar ( que também está escrito errado)

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

para

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

no Stacktrace ele ta avisando:

WARN: Unrecognized hbm2ddl_auto value : upadate. Supported values include create, create-drop, update, and validate. Ignoring

Criado 8 de outubro de 2017
Ultima resposta 8 de out. de 2017
Respostas 11
Participantes 2