Erro com Hibernate

17 respostas
E

Ola pessoa , olha eu mais uma vez enxendo o saco de vocês, bom vamos la, é o Seguinte estou começando com o Hibernate,
TENTANDO fazer um crud(inser,delete,update,read), porem não estou conseguindo.

Primeiramente quero postar meus arquivos e classe(estou tentado fazer um crud na tabela de fornecedor, bem ditático, pois a tabela tem apenas um campo - nome - estou usando mysql)

Tabela Fornecedor

fornecedor
nome - varchar

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

hibernate.properties

hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/controleestoque
hibernate.connection.username = root
hibernate.connection.password =

hibernate.show_sql = true

hibernate.format_sql = true

Fornecedor.hbm.xml

<hibernate-mapping>   
    <class name="Negocio.Fornecedor" table="fornecedor">   
        <id name="nome" column="nome" type="string">   
            <generator class="assigned"/>   
        </id>   
    </class>   
</hibernate-mapping>

Fabrica de Conexao

package Persistencia;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import Negocio.Fornecedor;

public class FabricaConexao {

	private static SessionFactory factory;
	
	public static Session getSession(){
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Fornecedor.class);
		factory = cfg.buildSessionFactory();
		return factory.openSession();
	}
	
	
}

FornecedorDAO

package Persistencia;

import java.util.List;

import org.hibernate.Session;


import Negocio.Fornecedor;

public class FornecedorDAO implements DAO<Fornecedor> {
	private Session session;
	
	public FornecedorDAO(){
		session = FabricaConexao.getSession();
	}
	
	
	@Override
	public void insert(Fornecedor forn) {
		session.save(forn);
	}
	
	
	@Override
	public void update(Fornecedor obj) {
		session.update(obj);
		session.flush();
	}

	@Override
	public void delete(Fornecedor obj) {
		session.delete(obj);
		session.flush();
	}


	@Override
	public List<Fornecedor> read() {
		return session.createCriteria(Fornecedor.class).list();
	}
}

Fornecedor

package Negocio;

public class Fornecedor {

	private String nome;

	public Fornecedor() {
	}

	public Fornecedor(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}

E por fim minha classe de teste

package Negocio;

import Persistencia.FornecedorDAO;

public class Teste {

	public static void main(String[] args) {
		Fornecedor f = new Fornecedor();
		f.setNome("Pedro");
		FornecedorDAO fDAO = new FornecedorDAO();
		fDAO.insert(f);
		

		
	}

}

Porem quando dou start no eclipse da o seguinte erro no console

14:19:09,281  INFO Version:15 - Hibernate Annotations <a href="http://3.4.0.GA">3.4.0.GA</a>

14:19:09,343  INFO Environment:543 - Hibernate 3.3.0.SP1

14:19:09,343  INFO Environment:561 - loaded properties from resource hibernate.properties: {hibernate.connection.username=root, hibernate.connection.password=****, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.show_sql=true, hibernate.connection.url=jdbc:mysql://localhost:3306/controleestoque, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.format_sql=true}

14:19:09,375  INFO Environment:709 - Bytecode provider name : javassist

14:19:09,390  INFO Environment:627 - using JDK 1.4 java.sql.Timestamp handling

14:19:09,765  INFO Version:14 - Hibernate Commons Annotations <a href="http://3.1.0.GA">3.1.0.GA</a>

14:19:10,078 DEBUG AnnotationConfiguration:806 - Validator not present in classpath, ignoring event listener registration

14:19:10,093 DEBUG HibernateSearchEventListenerRegister:209 - Search not present in classpath, ignoring event listener registration.

14:19:10,093  INFO HibernateSearchEventListenerRegister:53 - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.

14:19:10,093 DEBUG Configuration:1318 - Preparing to build session factory with filters : {}

14:19:10,093 DEBUG AnnotationConfiguration:258 - Execute first pass mapping processing

14:19:10,281 DEBUG AnnotationConfiguration:529 - Process hbm files

14:19:10,281 DEBUG AnnotationConfiguration:537 - Process annotated classes

14:19:10,296 DEBUG AnnotationConfiguration:401 - processing fk mappings (*ToOne and JoinedSubclass)

14:19:10,312 DEBUG Configuration:1153 - processing extends queue

14:19:10,312 DEBUG Configuration:1157 - processing collection mappings

14:19:10,312 DEBUG Configuration:1168 - processing native query and ResultSetMapping mappings

14:19:10,312 DEBUG Configuration:1176 - processing association property references

14:19:10,312 DEBUG Configuration:1198 - processing foreign key constraints

14:19:10,343  INFO AnnotationConfiguration:369 - Hibernate Validator not found: ignoring

14:19:10,390  INFO DriverManagerConnectionProvider:64 - Using Hibernate built-in connection pool (not for production use!)

14:19:10,406  INFO DriverManagerConnectionProvider:65 - Hibernate connection pool size: 20

14:19:10,406  INFO DriverManagerConnectionProvider:68 - autocommit mode: false

14:19:10,546  INFO DriverManagerConnectionProvider:103 - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/controleestoque

14:19:10,546  INFO DriverManagerConnectionProvider:106 - connection properties: {user=root, password=}

14:19:10,546 DEBUG DriverManagerConnectionProvider:132 - opening new JDBC connection

14:19:11,343 DEBUG DriverManagerConnectionProvider:138 - created connection to: jdbc:mysql://localhost:3306/controleestoque, Isolation Level: 4

14:19:11,343  INFO SettingsFactory:116 - RDBMS: MySQL, version: 5.1.44-community

14:19:11,343  INFO SettingsFactory:117 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )

14:19:11,406  INFO Dialect:175 - Using dialect: org.hibernate.dialect.MySQLDialect

14:19:11,562  INFO TransactionFactoryFactory:59 - Using default transaction strategy (direct JDBC transactions)

14:19:11,578  INFO TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)

14:19:11,578  INFO SettingsFactory:170 - Automatic flush during beforeCompletion(): disabled

14:19:11,578  INFO SettingsFactory:174 - Automatic session close at end of transaction: disabled

14:19:11,578  INFO SettingsFactory:181 - JDBC batch size: 15

14:19:11,578  INFO SettingsFactory:184 - JDBC batch updates for versioned data: disabled

14:19:11,593  INFO SettingsFactory:189 - Scrollable result sets: enabled

14:19:11,593 DEBUG SettingsFactory:193 - Wrap result sets: disabled

14:19:11,593  INFO SettingsFactory:197 - JDBC3 getGeneratedKeys(): enabled

14:19:11,593  INFO SettingsFactory:205 - Connection release mode: auto

14:19:11,593  INFO SettingsFactory:229 - Maximum outer join fetch depth: 2

14:19:11,593  INFO SettingsFactory:232 - Default batch fetch size: 1

14:19:11,593  INFO SettingsFactory:236 - Generate SQL with comments: disabled

14:19:11,593  INFO SettingsFactory:240 - Order SQL updates by primary key: disabled

14:19:11,593  INFO SettingsFactory:244 - Order SQL inserts for batching: disabled

14:19:11,609  INFO SettingsFactory:420 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory

14:19:11,609  INFO ASTQueryTranslatorFactory:47 - Using ASTQueryTranslatorFactory

14:19:11,609  INFO SettingsFactory:252 - Query language substitutions: {}

14:19:11,609  INFO SettingsFactory:257 - JPA-QL strict compliance: disabled

14:19:11,609  INFO SettingsFactory:262 - Second-level cache: enabled

14:19:11,625  INFO SettingsFactory:266 - Query cache: disabled

14:19:11,625  INFO SettingsFactory:405 - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory

14:19:11,625  INFO SettingsFactory:276 - Optimize cache for minimal puts: disabled

14:19:11,625  INFO SettingsFactory:285 - Structured second-level cache entries: disabled

14:19:11,640  INFO SettingsFactory:305 - Echoing all SQL to stdout

14:19:11,656  INFO SettingsFactory:314 - Statistics: disabled

14:19:11,656  INFO SettingsFactory:318 - Deleted entity synthetic identifier rollback: disabled

14:19:11,656  INFO SettingsFactory:333 - Default entity-mode: pojo

14:19:11,656  INFO SettingsFactory:337 - Named query checking : enabled

14:19:11,828  INFO SessionFactoryImpl:187 - building session factory

14:19:11,843 DEBUG SessionFactoryImpl:205 - Session factory constructed with filter configurations : {}

14:19:11,843 DEBUG SessionFactoryImpl:209 - instantiating session factory with properties: {java.runtime.name=Java SE Runtime Environment, hibernate.connection.password=, sun.boot.library.path=C:\Arquivos de programas\Java\jre6\bin, java.vm.version=14.3-b01, hibernate.connection.username=root, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot™ Client VM, <a href="http://file.encoding.pkg=sun.io">file.encoding.pkg=sun.io</a>, user.country=BR, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=Service Pack 3, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\Documents and Settings\Administrador\workspace\Servlet, java.runtime.version=1.6.0_17-b04, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Arquivos de programas\Java\jre6\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp, line.separator=

, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, sun.jnu.encoding=Cp1252, java.library.path=C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;, java.specification.name=Java Platform API Specification, java.class.version=50.0, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, user.home=C:\Documents and Settings\Administrador, user.timezone=America/Sao_Paulo, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1252, java.specification.version=1.6, hibernate.format_sql=true, hibernate.connection.driver_class=com.mysql.jdbc.Driver, user.name=Administrador, java.class.path=C:\Documents and Settings\Administrador\workspace\Servlet\build\classes;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\commons-el.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\jasper-compiler-jdt.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\jasper-compiler.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\jasper-runtime.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\jsp-api.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\naming-factory-dbcp.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\naming-factory.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\naming-resources.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\slf4j-log4j12.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\antlr.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\asm.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\asm-attrs.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\cglib.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\commons-collections.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\junit.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\test\log4j.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\slf4j-api.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\dom4j.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\ejb3-persistence.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\hibernate-annotations.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\hibernate-commons-annotations.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\hibernate-core.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\javassist.jar;C:\Documents and Settings\Administrador\Meus documentos\Java\Ultilitarios\<a href="http://hibernate-entitymanager-3.4.0.GA">hibernate-entitymanager-3.4.0.GA</a>\lib\jta.jar, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, java.vm.specification.version=1.0, sun.arch.data.model=32, java.home=C:\Arquivos de programas\Java\jre6, hibernate.connection.url=jdbc:mysql://localhost:3306/controleestoque, hibernate.dialect=org.hibernate.dialect.MySQLDialect, java.specification.vendor=Sun Microsystems Inc., user.language=pt, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, sharing, java.version=1.6.0_17, java.ext.dirs=C:\Arquivos de programas\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext, sun.boot.class.path=C:\Arquivos de programas\Java\jre6\lib\resources.jar;C:\Arquivos de programas\Java\jre6\lib\rt.jar;C:\Arquivos de programas\Java\jre6\lib\sunrsasign.jar;C:\Arquivos de programas\Java\jre6\lib\jsse.jar;C:\Arquivos de programas\Java\jre6\lib\jce.jar;C:\Arquivos de programas\Java\jre6\lib\charsets.jar;C:\Arquivos de programas\Java\jre6\classes, java.vendor=Sun Microsystems Inc., file.separator=, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.cpu.endian=little, sun.io.unicode.encoding=UnicodeLittle, sun.desktop=windows, sun.cpu.isalist=}

14:19:11,859 DEBUG SessionFactoryObjectFactory:62 - initializing class SessionFactoryObjectFactory

14:19:11,859 DEBUG SessionFactoryObjectFactory:99 - registered: 402882e42762d61d012762d61de30000 (unnamed)

14:19:11,859  INFO SessionFactoryObjectFactory:105 - Not binding factory to JNDI, no JNDI name configured

14:19:11,875 DEBUG SessionFactoryImpl:340 - instantiated session factory

14:19:11,875 DEBUG SessionFactoryImpl:426 - Checking 0 named HQL queries

14:19:11,875 DEBUG SessionFactoryImpl:446 - Checking 0 named SQL queries

14:19:12,109 DEBUG SessionImpl:247 - opened session at timestamp: [telefone removido]

Exception in thread main org.hibernate.MappingException: Unknown entity: Negocio.Fornecedor

at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)

at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365)

at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)

at Persistencia.FornecedorDAO.insert(FornecedorDAO.java:20)

at Negocio.Teste.main(Teste.java:11)

17 Respostas

mrrbigu

Cara não deu tempo de fazer uma análise completa, mas o erro é que ele não está encontrando o mapeamento da classe Negocio.Fornecedor, pelo visto você está usando o hibernate annotations, mas não criou as anotações na classe Negocio.Fornecedor.
Essa classe deve implementar Serializable e pelo menos o mapeamento de @Entity e @Id.

veja:http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping

E

Meu ingles é pessimo mais obrigado pela ajuda, é pelo que eu vi eu tabem axei que era erro no mapeamento porem não sei resolver
Então pessoal, alguem pode resolver meu problema ou postar um exmplo usando hibernate?

mrrbigu

Certo, suponho que o atributo "nome" seja a chave primária de sua tabela fornecedor, uma dica é quando usar annotations em hibernate procure usar sempre o mesmo nome, ou seja os atributos da classe com o mesmo nome dos campos da tabela, pois economizará trabalho, da mesma forma que voce fez nesse exemplo.

Então ficaria assim:
package Negocio;

@Entity
public class Fornecedor implements Serializable {

    @Id
	private String nome;

	public Fornecedor() {
	}

	public Fornecedor(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}
TheKill

Também estou interessado em Hibernate, se alguem tiver
um projeto bem básicao de CRUD para deixar para galera estudar…

Seria bem legal ^^

Att. Jonas

E

Endenti, mais no caso de não usar anotação usar XML para fazer o relacionamento dos campos como ficaria?

MUITO OBRIGADO

E

Pessoal mudei minha fabrica de conexao

package Persistencia;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;



public class FabricaConexao {

	private static SessionFactory factory;
	
	public static Session getSession(){
		Configuration  cfg = new Configuration();
		cfg.addClass(Negocio.Fornecedor.class);
		factory = cfg.buildSessionFactory();
		return factory.openSession();
	}
	
	
}

meu mapeamento Fornecedor.hbm.xml

<hibernate-mapping>   
    <class name="Negocio.Fornecedor" table="fornecedor">   
        <id name="nome" column="nome" type="string">   
        </id>   
    </class>   
</hibernate-mapping>

eu axo que o erro esta nesse mapeamento

SEGUE A MENSAGEM DE ERRO

16:09:54,671  INFO Environment:543 - Hibernate 3.3.0.SP1

16:09:54,703  INFO Environment:561 - loaded properties from resource hibernate.properties: {hibernate.connection.username=root, hibernate.connection.password=****, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.show_sql=true, hibernate.connection.url=jdbc:mysql://localhost:3306/controleestoque, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.format_sql=true}

16:09:54,703  INFO Environment:709 - Bytecode provider name : javassist

16:09:54,750  INFO Environment:627 - using JDK 1.4 java.sql.Timestamp handling

16:09:55,000  INFO Configuration:618 - Reading mappings from resource: Negocio/Fornecedor.hbm.xml

16:09:55,000  INFO Configuration:563 - Reading mappings from resource: Negocio/Fornecedor.hbm.xml

Exception in thread main org.hibernate.MappingNotFoundException: resource: Negocio/Fornecedor.hbm.xml not found

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

at org.hibernate.cfg.Configuration.addClass(Configuration.java:619)

at Persistencia.FabricaConexao.getSession(FabricaConexao.java:15)

at Persistencia.FornecedorDAO.(FornecedorDAO.java:14)

at Negocio.Teste.main(Teste.java:10)

Por favor pessoal me ajude

Obrigado

mrrbigu

Se você está começando agora, sugiro que vá de annotations, que é mais limpo, e mais fácil de encontrar problemas, quando aprendi annotations tirei o xml de minha cabeça, mas o mapeamento da classe fornecedor em xml é do jeito que você postou.
Não recomendo usar a String nome como chave primária, pois um fornecedor poderá mudar seu nome e te criar um problemão, sugiro usar um número.

E

Ola mrrbigu , primeiramente quero agradecer pela atenção.

Então eu quero configurar via html , para eu entender por didatica mesmo, e tbm estou usando uma string copm chave primaria somente porque é para teste ou seja quero ver como funciona, mais da o seguinte erro que postei,

Por favor alguem mais para ajudar?

OBRIGADO

mrrbigu

Certo, esse erro diz especificamente que ele não está encontrando o arquivo Fornecedor.hbm.xml, poste seu arquivo hibernate.cfg.xml para vermos como está.

E

mrrbigu

Olha eu tenho o arquivo hibernate properties

hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/controleestoque
hibernate.connection.username = root
hibernate.connection.password =

hibernate.show_sql = true

hibernate.format_sql = true

e a fabrica de conexao

package Persistencia;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;



public class FabricaConexao {

	private static SessionFactory factory;
	
	public static Session getSession(){
		Configuration  cfg = new Configuration();
		cfg.addClass(Negocio.Fornecedor.class);
		factory = cfg.buildSessionFactory();
		return factory.openSession();
	}
	
	
}

e a classe DAO

package Persistencia;

import java.util.List;

import org.hibernate.Session;


import Negocio.Fornecedor;

public class FornecedorDAO implements DAO<Fornecedor> {
	private Session session;
	
	public FornecedorDAO(){
		session = FabricaConexao.getSession();
	}
	
	
	@Override
	public void insert(Fornecedor forn) {
		session.save(forn);
	}
	
	
	@Override
	public void update(Fornecedor obj) {
		session.update(obj);
		session.flush();
	}

	@Override
	public void delete(Fornecedor obj) {
		session.delete(obj);
		session.flush();
	}


	@Override
	public List<Fornecedor> read() {
		return session.createCriteria(Fornecedor.class).list();
	}
}

ESSE ARQUIVO QUE VC FALOU EU NÃO TENHO, NAO SERIA O MSM DA CLASSE QUE FABRICA CONEXAO? SE NÃO FOR

PRA QUE SERVE ESSE ARQUIVO

MUITO OBRIGADOOO

E

AH O MEU Fornecedor.hbm.xml fica com aquele exclamação (aviso)

a seguinte mensagem “No grammar constraints (DTD or XML schema) detected for the document.”

e tbm

esses que está sublinhado fica riscado no eclipse , tipo um erro de portugues do word

mrrbigu

Parece estar tudo certo, apesar da mensagem informando que ele não encontrou o Fornecedor.hbm.xml na pasta Negocio, você já verificou se ele está lá? Se estiver, tente usar o arquivo hibernate.cfg.xml que fiz abaixo, colocando ele na sua pasta src.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/controleestoque</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <mapping resource="Negocio/Fornecedor.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
E

Então está sim dentro do pacote Negocio, ah colequei o arquivo que vc me pediu.

Uma pergunta este arquivo substitui qual?
o hiberante.properties?

finalizando adicionando o arquivo continua dando o mesmo erro

10:12:46,218  INFO Environment:543 - Hibernate 3.3.0.SP1

10:12:46,250  INFO Environment:561 - loaded properties from resource hibernate.properties: {hibernate.connection.username=root, hibernate.connection.password=****, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.show_sql=true, hibernate.connection.url=jdbc:mysql://localhost:3306/controleestoque, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.format_sql=true}

10:12:46,265  INFO Environment:709 - Bytecode provider name : javassist

10:12:46,312  INFO Environment:627 - using JDK 1.4 java.sql.Timestamp handling

10:12:47,468  INFO Configuration:618 - Reading mappings from resource: Negocio/Fornecedor.hbm.xml

10:12:47,468  INFO Configuration:563 - Reading mappings from resource: Negocio/Fornecedor.hbm.xml

Exception in thread main org.hibernate.MappingNotFoundException: resource: Negocio/Fornecedor.hbm.xml not found

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

at org.hibernate.cfg.Configuration.addClass(Configuration.java:619)

at Persistencia.FabricaConexao.getSession(FabricaConexao.java:15)

at Persistencia.FornecedorDAO.(FornecedorDAO.java:14)

at Negocio.Teste.main(Teste.java:10)
mrrbigu

Ele substitui o hibernate properties, mas nele eu informei a localização do seu arquivo Fornecedor.hbm.xml.
É por isso que eu prefiro annotations, às vezes um problema nos xml é difícil de descobrir, no site do hibernate você pode baixa o hibernate tools e pedir para ele criar seu arquivo .hbm.xml, pode ser um problema nesse arquivo.

E

então pessoal . por favor mais alguem para ajudar?

Obrigado

E

PESSOAL, ALGUEM PODE ME AJUDAR?

ESTOU PRECISANDO URGENTE POIS PRECISO ENTREGAR ISSO PRONTO PRA FACULDADE

E

Pessoal, preciso até sexta por favor alguem me ajude?

Criado 15 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 17
Participantes 3