@dnhill escreveu:
Bom dia pessoal, comecei a ler o livro da casa do código "Aplicações Java para web com JSF e JPA", porém estou com uma dificuldade.
Estou começando a aprender, então se for alguma coisa besta já peço desculpas.Seguinte:
criei a classe Automovel:
> import javax.persistence.Entity; > import javax.persistence.GeneratedValue; > import javax.persistence.Id; > @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; > } > }
a classe JPAUtil :
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class JPAUtil { private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("teste"); public static EntityManager getEntityManager(){ return emf.createEntityManager(); } }
A classe PersistidorDeAutomovel:
import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; public class PersistidorDeAutomovel { public static void main(String[] args) { EntityManager em = JPAUtil.getEntityManager(); Automovel auto = new Automovel(); auto.setAnoFabricacao(2010); auto.setModelo("Ferrari"); auto.setObservacoes("Nunca foi batido"); EntityTransaction tx = em.getTransaction(); tx.begin(); em.persist(auto); tx.commit(); em.close(); } }
e o persistence.xml (utilizo banco de dados oracle 11g) :
<?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="teste"> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:/:@localhost:1521:xe"/> <property name="javax.persistence.jdbc.user" value="teste"/> <property name="javax.persistence.jdbc.password" value="1234"/> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit> </persistence>
E ao executar a classe PersistidorDeAutomovel, é lançada a seguinte exceção:
set 28, 2016 10:07:53 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: teste ...] set 28, 2016 10:07:53 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.2.2.Final} set 28, 2016 10:07:53 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found set 28, 2016 10:07:53 AM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist set 28, 2016 10:07:53 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} set 28, 2016 10:07:53 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) Exception in thread "main" java.lang.ExceptionInInitializerError at PersistidorDeAutomovel.main(PersistidorDeAutomovel.java:8) 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:267) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:231) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 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:240) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 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) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) at JPAUtil.<clinit>(JPAUtil.java:7) ... 1 more Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [oracle.jdbc.driver.OracleDriver] at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:160) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:116) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:100) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:240) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) 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:257) ... 15 more
Se alguém puder me ajudar, agradeço desde já.
Mensagens: 4
Participantes: 3