I have been tried to make my first Hibernate project. I added following libraries into my project:
antlr-2.7.7 commons-collections-3.2.1 dom4j-1.6.1 hibernate-commons-annotations-4.0.1.Final hibernate-core-4.1.0.Final hibernate-jpa-2.0-api-1.0.1.Final javassist-3.15.0-GA jboss-logging-3.1.0.CR2 jboss-transaction-api_1.1_spec-1.0.0.Final mysql-connector-java-5.1.18-bin
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<mapping class="com.nda.hibernate.Person"/>
</session-factory>
</hibernate-configuration>
Person.class:
package com.nda.hibernate;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Person {
private String name;
@Id
private int number;
public Person() {}
public Person(String name, int number) {
this.name=name;
this.number=number;
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setNumber(int number) {
this.number=number;
}
public int getNumber() {
return number;
}
}
I have Denwer installed. Parameters for using: login - root, password is empty. Server is localhost, and has database "test" with table "person"(CHAR(50) name, INT(10) number - primary key)
Main.class:
SessionFactory sessions=new AnnotationConfiguration().configure().buildSessionFactory();
Session session=sessions.openSession();
It doesn't work. I have got some errors:
03.03.2012 14:11:07 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
03.03.2012 14:11:07 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.0.Final}
03.03.2012 14:11:07 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
03.03.2012 14:11:07 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
03.03.2012 14:11:07 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
03.03.2012 14:11:07 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
03.03.2012 14:11:07 org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
03.03.2012 14:11:07 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/test]
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=root, password=****}
03.03.2012 14:11:08 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
03.03.2012 14:11:08 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
03.03.2012 14:11:08 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
How can I fix it? Thank you.
I was also having the same problem. After some Googling, I solve the problem.
All you have to do is to change the namespace "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" to "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" as specified in Hibernate 3.6 Migration Guide.
None of those look like errors to me - they're just log lines. The only "problem" is a warning here:
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
That's only a warning - worth fixing, but it sounds like it's not terribly urgent.
Everything else is just at INFO level... so don't worry about them. Just keep going, and see whether your code does what you expect in terms of database access.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With