Comment corriger l'erreur avec mon premier Hibernate projet?
J'ai été tenté de faire mon premier projet Hibernate. J'ai ajouté à la suite de bibliothèques dans mon projet:
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-version 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;
}
}
J'ai Denwer installé. Paramètres pour l'utilisation de: login root, le mot de passe est vide. Le serveur est localhost, et a la base de données "test" à table "personne"(CHAR(50) nom, INT(10) le nombre - clé primaire)
Main.class:
SessionFactory sessions=new AnnotationConfiguration().configure().buildSessionFactory();
Session session=sessions.openSession();
Il ne fonctionne pas. J'ai eu quelques erreurs:
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
Comment puis-je résoudre ce problème? Je vous remercie.
OriginalL'auteur user1166635 | 2012-03-03
Vous devez vous connecter pour publier un commentaire.
Aucun de ceux-ci ressemblent à des erreurs de moi - ils sont juste des lignes de log. Le seul "problème" est une mise en garde ici:
C'est seulement un avertissement - la fixation de la peine, mais il semble que ce n'est pas terriblement urgente.
Tout le reste est juste au niveau de l'INFO... donc ne pas s'en inquiéter. Continue, et de voir si votre code est-ce que vous attendez en termes de base de données access.
OriginalL'auteur Jon Skeet
J'ai également le même problème.
Après quelques recherches sur Google, je résoudre le problème.
Tout ce que vous avez à faire est de modifier l'espace de noms "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" à "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"
comme spécifié dans Hibernate 3.6 Guide De Migration.
OriginalL'auteur Neo182
Il est facile
Dans votre fichier xml de configuration hibernate vous devez modifier la ligne
à
OriginalL'auteur David Hackro
Person.class devrait implémente serializable, mais il semble que le principal problème que vous avez est le Hibernate 3.6 Guide de Migration de!
Vous voir.
OriginalL'auteur Droideka