Erro em projeto java. Estou acompanhado um livro da Algaworks sobre Java mas estou a 3 dias tentando resolver um problema gostaria que alguém pudesse me ajudar!

11 respostas Resolvido
java
P
Jan 26, 2016 8:42:22 AM org.hibernate.ejb.HibernatePersistence logDeprecation

WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.

Jan 26, 2016 8:42:22 AM org.hibernate.ejb.HibernatePersistence logDeprecation

WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.

Jan 26, 2016 8:42:22 AM org.hibernate.ejb.HibernatePersistence logDeprecation

WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.

Jan 26, 2016 8:42:23 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation

INFO: HHH000204: Processing PersistenceUnitInfo [

name: FinanceiroPU

]

Jan 26, 2016 8:42:25 AM org.hibernate.Version logVersion

INFO: HHH000412: Hibernate Core {4.3.8.Final}

Jan 26, 2016 8:42:25 AM org.hibernate.cfg.Environment 

INFO: HHH000206: hibernate.properties not found

Jan 26, 2016 8:42:25 AM org.hibernate.cfg.Environment buildBytecodeProvider

INFO: HHH000021: Bytecode provider name : javassist

Jan 26, 2016 8:42:30 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager 

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

Jan 26, 2016 8:42:30 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

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

Jan 26, 2016 8:42:30 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/ebookjsf]

Jan 26, 2016 8:42:30 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

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

Jan 26, 2016 8:42:30 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator

INFO: HHH000006: Autocommit mode: false

Jan 26, 2016 8:42:30 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

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

Exception in thread main javax.persistence.PersistenceException: Unable to build entity manager factory

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

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)

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

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

at com.estudo.finaceiro.model.CriaTabelas.main(CriaTabelas.java:9)

Caused by: org.hibernate.exception.SQLGrammarException: Error calling Driver#connect

at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123)

at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:118)

at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140)

at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58)

at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75)

at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)

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

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

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

at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)

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

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

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

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

at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845)

at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)

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

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

 4 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'ebookjsf’

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

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

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

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

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

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

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

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

at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4332)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1258)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064)

at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:790)

at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:44)

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

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

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

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)

at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)

 21 more
persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
	version="2.1">

	<persistence-unit name="FinanceiroPU">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>

		<properties>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/ebookjsf" />
			<property name="javax.persistence.jdbc.user" value="root" />
			<property name="javax.persistence.jdbc.password" value="5961" />
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />

			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
		</properties>
	</persistence-unit>

</persistence>
pom.xml
<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">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.testemaven</groupId>
	<artifactId>Estudo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- Núcleo do Hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.8.Final</version>
			<scope>compile</scope>
		</dependency>
		<!-- Implementação de EntityManager da JPA -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>4.3.8.Final</version>
			<scope>compile</scope>
		</dependency>
		<!-- Driver JDBC do MySQL -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
			<scope>compile</scope>
		</dependency>

	</dependencies>

</project>

11 Respostas

A

Fala Paulo,

acho que esta base ebookjsf. Confirme se o nome da base que você criou está correto.

T

O erro principal é esse:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database ‘ebookjsf’

O driver do MySQL e o Hibernate não estão conseguindo achar a base de dados chamada ebookjsf. Não sei se a ideia é que a base seria criada automaticamente, mas tente criá-la e ver se funciona. Verifique se o firewall não está bloqueando o MySQL também.

PS: postado praticamente junto com o andrewop

Abraço.

P

Caro Skill a ideia seria que fosse criado automaticamente tem uma classe CriaTabela

package com.estudo.finaceiro.model;

import javax.persistence.Persistence;

public class CriaTabelas {

	public static void main(String[] args) {

		Persistence.createEntityManagerFactory("FinanceiroPU");

	}

}
/*
 * O parâmetro do método createEntityManagerFactory deve ser o mesmo nome que
 * informamos no atributo name da tag persistence-unit, no arquivo
 * persistence.xml.
 */
P

Andre esta correto!

T

Crie manualmente a base de dados chamada ebookjsf, e tente rodar sua aplicação.

Não lembro bem os detalhes do Hibernate, mas para a criação do banco de dados (não das tabelas, mas do banco em si) pode ser que seja necessário alguma configuração a mais.

Abraço.

A

Fala Paulo,

Mude essa property do seu persistence.xml

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

para

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

No momento em que sua aplicação for inicializada a base será criada automaticamente.

P

Caro skill !
Crie a base e mudou de erro estou tentando resolver mas e tiverem alguma ideia estou aguardando.

Jan 28, 2016 10:26:42 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jan 28, 2016 10:26:42 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jan 28, 2016 10:26:42 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jan 28, 2016 10:26:42 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
	name: FinanceiroPU
	...]
Jan 28, 2016 10:26:43 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.8.Final}
Jan 28, 2016 10:26:43 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jan 28, 2016 10:26:43 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jan 28, 2016 10:26:44 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
Jan 28, 2016 10:26:44 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Jan 28, 2016 10:26:44 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/ebookjsf]
Jan 28, 2016 10:26:44 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
Jan 28, 2016 10:26:44 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Jan 28, 2016 10:26:44 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Jan 28, 2016 10:26:45 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: FinanceiroPU] Unable to build Hibernate SessionFactory
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1239)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:120)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:855)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845)
	at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at com.estudo.finaceiro.model.CriaTabelas.main(CriaTabelas.java:9)
Caused by: org.hibernate.AnnotationException: @Temporal should only be set on a java.util.Date or java.util.Calendar property: com.estudo.finaceiro.model.Lancamento.dataVencimento
	at org.hibernate.cfg.annotations.SimpleValueBinder.setType(SimpleValueBinder.java:179)
	at org.hibernate.cfg.annotations.PropertyBinder.makePropertyAndValue(PropertyBinder.java:195)
	at org.hibernate.cfg.annotations.PropertyBinder.makePropertyValueAndBind(PropertyBinder.java:216)
	at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:2241)
	at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:963)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:796)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3799)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852)
	... 8 more
I
Solucao aceita

O erro está claro

@Temporal should only be set on a java.util.Date or java.util.Calendar property: com.estudo.finaceiro.model.Lancamento.dataVencimento

Veja se voce não importou java.**sql.**Date ao inves de java.util.Date

P

Pessoal muito obrigado agora foi!

A

Galera, aproveitando o tópio. Estou acompanhando o mesmo tutorial do colega, porém estou com outro problema: na hora de criar minha camada de persistência com aquela classe GerarTabelas, estou recebendo o seguinte erro:

Exception in thread main javax.persistence.PersistenceException: No Persistence provider for EntityManager named

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

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

at br.com.alexpfx.ocpquiz.faces.domain.Main.main(Main.java:11)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Minha dúvida é se essa classe é para ser rodada como um programa java se mesmo, apesar de a aplicacao ser JEE. Estou ha dois dias me batendo nesse erro, vi várias pessoas obtendo esta mensagem de erro, mas nenhuma solução parece se aplicar ao meu caso.

A

nossa, foi pura cag**** minha. eu não percebi que no persistence.xml havia um “>” dentro do nome da persistence unit. :grinning: :sob:

Criado 26 de janeiro de 2016
Ultima resposta 11 de fev. de 2016
Respostas 11
Participantes 5