Utiliser les outils Hibernate génère des classes Entity à partir des tables

View more Tutorials:

1- Introduction

This document is based on:
  • Eclipse 4.5 (MARS)

  • Hibernate 5.1.0.Final

  • Hibernate Tools 4.3.1.Final.html

(Last update document: 21-05-2016).
D'abord, vous devez vous assurer que vous avez installé  "Hibernate Tools" dans  Eclipse. "Hibernate Tools" est un parmi les outils de  JBoss - "JBoss Tools".
Voir plus à:

2- Database for example, used in this document

La base de données a utilisé pour illustrer dans ce tutoriel  "simplehr". Vous pouvez faire des références à:

3- Connect to the database via the "Database Development"

Dans  Eclipse sélectionnez :
  • Window/Perspective/Open Perspective/Other...
Créez une nouvelle  connection à la base de données  simplehr:
Dans ce tutoriel, je vais connecter à la base de données d' Oracle. Vous pouvez vous connecter à une base de données différente, de la même manière.
Pressez sur l'icône pour déclarer  Driver de votre base de données que vous venez de sélectionnée.
Cliquez à  "Add JAR/Zip"
Saisissez l'information pour connecter à la base de données. Ensuite, cliquez à  "Test Connection" pour vous assurer que la connexion à la base de données est réussie.
Vous pouvez voir la structure de votre base de données dans  "Data Source Explorer".
Essayez les données  query sur une table.

4- Create Project

Enter:
  • Group Id: org.o7planning
  • Artiface Id: HibernateGenerateEntities
Le projet est créé:
La déclaration la bibliothèque  Hibernate 5, et des bibliothèques  JDBC pour  Oracle, MySQL, SQL Server.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.o7planning</groupId>
  <artifactId>HibernateGenerateEntities</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>HibernateGenerateEntities</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

 <repositories>
     <!-- Repository for ORACLE JDBC Driver -->
     <repository>
         <id>codelds</id>
         <url>https://code.lds.org/nexus/content/groups/main-repo</url>
     </repository>
 </repositories>


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
   <!-- Hibernate -->
     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-core</artifactId>
         <version>5.1.0.Final</version>
     </dependency>

     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-entitymanager</artifactId>
         <version>5.1.0.Final</version>
     </dependency>


     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-c3p0</artifactId>
         <version>5.1.0.Final</version>
     </dependency>


     <!-- MySQL JDBC driver -->
     <!-- http://mvnrepository.com/artifact/mysql/mysql-connector-java -->
     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.34</version>
     </dependency>

     <!-- Oracle JDBC driver -->
     <dependency>
         <groupId>com.oracle</groupId>
         <artifactId>ojdbc6</artifactId>
         <version>11.2.0.3</version>
     </dependency>

   <!-- SQLServer JDBC driver (JTDS) -->
   <!-- http://mvnrepository.com/artifact/net.sourceforge.jtds/jtds -->
   <dependency>
       <groupId>net.sourceforge.jtds</groupId>
       <artifactId>jtds</artifactId>
       <version>1.3.1</version>
   </dependency>
            
  </dependencies>
 
</project>

5- Configuring Hibenate

"Hibernate Tools" permet de créer le fichier de configuration  Hibernate hoàn toàn trực quan. Và bây giờ chúng ta sẽ tạo file "hibernate.cfg.xml" bằng công cụ này.
Dans  Eclipse sélectionnez:
  • Window/Perspective/Open Perspective/Other...
Cliquez sur le bouton droit et sélectionnez  "Add Configuration.." pour créer un fichier de configuration  Hibernate.
Saisissez le nom du fichier  "hibernate.cfg.xml", et le mettez dans un dossier  "src/main/java" du projet.
Vous pouvez taper les informations dans une connexion à la base de données ou récupérer les informations de connexion que vous avez déjà déclarées. Cliquez sur "Get values from Connection".
Sélectionnez Connection "Oracle (Simplehr)", ce que vous avez créé au dessus. Cliquez sur Ok pour continuer.
Ensuite, sélectionnez la classe  "dialect" qui correspond au type de votre base de données. Avec  Oracle elle sera  Oracle10g, notez que la classe  dialect "Oracle10g" est utilisée dans ces deux cas: la version 10 et la version 11 d' Oracle.
Cliquez Ok pour terminer la configuration. Après cette étape, le fichier  "hibernate.cfg.xml" a été créé dans votre projet  src/main/java.
La configuration  Hibernate est créée. (Voir dans  Hibernate Configurations view)
Voir dans  "Package Explorer":
  • hibernate.cfg.xml
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.password">12345</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:db12c</property>
        <property name="hibernate.connection.username">simplehr</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    </session-factory>
    
</hibernate-configuration>
Ensuite, nous allons configurer, comment lire la structure de la table et générer à la classe entity à partir de la struture dans Database.
  • Window/Perspective/Open Perspective/Hibernate
Remarque: Si le processus de génération des entity échoue, vous pouvez voir comment le résoudre dans l'annexe..

6- Appendix: Error while generating the entities

Peut être lors que vous générez les  Entity vous obtiendrez une erreur comme ci- dessous:
** NoClassDefFoundError **
org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError,
probably the console configuration classpath is incomplete or contains conflicting versions of the same class
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
org.hibernate.console.HibernateConsoleRuntimeException:
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
java.lang.NoClassDefFoundError: org/apache/commons/collections/MultiMap
org/apache/commons/collections/MultiMap
java.lang.ClassNotFoundException: org.apache.commons.collections.MultiMap cannot be found by org.jboss.tools.hibernate.runtime.v_5_1_5.0.1.Final-v20160331-1852-B88
org.apache.commons.collections.MultiMap cannot be found by org.jboss.tools.hibernate.runtime.v_5_1_5.0.1.Final-v20160331-1852-B88
Vous devez configurer pour utiliser une ancienne version de  Hibernate.
Et redémarrez pour générer la  Entity:

7- Hibernate Tutorial

Peut-être que vous êtes intéressé par:
  • TODO Link!

View more Tutorials: