Bah valeu pela lista ;D
me ajudou bastante agora me "achei" com os jar's estou quase conseguindo.
criei uns testes mas está dando umerro e não achei muita informação sobre isso no google, não achei nada de diferente no meu código.
O erro:
23/09/2008 21:30:44 org.hibernate.cfg.annotations.Version
INFO: Hibernate Annotations 3.4.0.CR2
23/09/2008 21:30:44 org.hibernate.cfg.Environment
INFO: Hibernate 3.3.0.GA
23/09/2008 21:30:44 org.hibernate.cfg.Environment
INFO: hibernate.properties not found
23/09/2008 21:30:44 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
23/09/2008 21:30:44 org.hibernate.cfg.Environment
INFO: using JDK 1.4 java.sql.Timestamp handling
23/09/2008 21:30:44 org.hibernate.annotations.common.Version
INFO: Hibernate Commons Annotations 3.1.0.CR2
23/09/2008 21:30:44 org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
23/09/2008 21:30:44 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
23/09/2008 21:30:45 org.hibernate.util.XMLHelper$ErrorLogger error
SEVERE: Error parsing XML: /hibernate.cfg.xml(40) The content of element type "hibernate-configuration" must match "(session-factory,security?)".
Exception in thread "main" org.hibernate.MappingException: invalid configuration
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1521)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1017)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:64)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1448)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1011)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:64)
at TestaUsuario.main(TestaUsuario.java:20)
Caused by: org.xml.sax.SAXParseException: The content of element type "hibernate-configuration" must match "(session-factory,security?)".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1518)
... 9 more
Só que pelo que li na internet(http://www.guj.com.br/posts/list/21293.java)
se tem o arquivo hibernate.cfg.xml não precisa do hibernate.properties
Ali também tem que:
Configuration por padrão vai buscar um hibernate.properties se você deseja ler um hibernate.cfg.xml você precisa charmar o metodo configure dessa mesma classe
Configuration cfg = new Configuration().configure();
Na apostila da Caelum ao invés de new Configuration tem new AnnotationConfiguration.
Isso tem alguma diferença?
Minhas classes estão assim e todas estão no default package:
TestaUsuario.java
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class TestaUsuario {
public static void main(String[] args){
Configuration conf = new AnnotationConfiguration();
conf.configure();
SessionFactory factory = conf.buildSessionFactory();
Session session = factory.openSession();
//cria um teste
Teste t = new Teste();
t.setMessage("Teste");
Transaction trans = session.beginTransaction();
session.save(t);
trans.commit();
session.close();
}
}
Teste.java
import javax.persistence.*;
/**
*
* @author User
*/
@Entity
public class Teste implements java.io.Serializable {
@Id
@GeneratedValue
int id;
String message;
public Teste() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
hibernate.cfg.xml
<?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>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/maconaria</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<mapping resource="teste.hbm.xml"/>
</session-factory>
</hibernate-configuration>
log4j.properties
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
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.type=info
log4j.logger.org.hibernate.tool.hbm2ddl=debug
teste.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Teste" table="Teste">
<id name="id">
<generator class="native"/>
</id>
<property name="message"/>
</class>
</hibernate-mapping>
Outra dúvida se eu uso annotations eu não preciso dos arquivos hbm.xml?