Использование Hibernate Tools генерирует классы сущностей из таблиц

1- Instroduction

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).
Для начала, вам нужно удостовериться что вы установили  "Hibernate Tools" в  Eclipse. "Hibernate Tools" это один из инструментов в  JBoss - "JBoss Tools".
Смотрите так же:

2- Database for example, used in this document

База данных, использующаяся для иллюстрации в данной статье является  "simplehr". Можете посмотреть по ссылке:

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

В Eclipse выбрать :
  • Window/Perspective/Open Perspective/Other...
Создать новое  connection к базе данных  simplehr:
В данном руководстве я соединю к базе данных  Oracle. Вы можете соединить к другой базе данных, способ выполнения будет абсолютно таким же. 
Нажмите на значок, чтобы объявить  Driver для выбранной вами базы данных.
Нажмите на  "Add JAR/Zip"
Введите информацию, чтобы подключить к базе данных. Затем, нажмите "Test Connection" чтобы удостовериться в успешном подключении к базе данных. 
Вы моежете увидеть структуру вашей базы данных в  "Data Source Explorer".
Попробуйте запросить  query данные в таблице.

4- Create Project

Enter:
  • Group Id: org.o7planning
  • Artiface Id: HibernateGenerateEntities
Project создан:
Объявить библиотеку  Hibernate 5, и библиотеки  JDBC для  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" позволяют создать визуальный файл конфигурации Hibernate. Теперь мы создадим файл  "hibernate.cfg.xml" используя этот инструмент.
В Eclipse выбрать:
  • Window/Perspective/Open Perspective/Other...
Нажмите на правую мышь и выберите  "Add Configuration.." чтобы создать файл конфигурации  Hibernate.
Введите название файла  "hibernate.cfg.xml",  и положите в файл  "src/main/java" в Project.
Вы можете ввести информацию в соединении базы данных или получить информацию подключения, которую вы объявляли ранее. Нажмите на  "Get values from Connection".
Выберите Connection "Oracle (Simplehr)", которое вы создали ранее. Нажмите ОК чтобы продолжить.
Далее, выберите класс  "dialect" соответствующий виду вашей базы данных. Для Oracle это будет  Oracle10g, заметьте что класс  dialect "Oracle10g" используется для 2 версий 10 и 11  Oracle.
Нажмите ОК, чтобы завершить конфигурацию. После этого будет файл  "hibernate.cfg.xml" созданный в файле src/main/java вашего Project.
Конфигурация  Hibernate создана. (Смотрите на  Hibernate Configurations view)
Смотрите на  "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>
Далее мы конфигурируем, способ инструмента создавать классы  entity из чтения структуры таблицы в  Database.
  • Window/Perspective/Open Perspective/Hibernate
Заметка: Если процесс создания  entity не удастся вы можете посмотреть как решить эту проблему в аппендиксе.

6- Appendix: Error while generating the entities

Может при создании  Entity вы получите следующие ошибки:
** 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
Вам нужно конфигурировать используя старую версию  Hibernate.
Перезапустите для пересоздания  Entity:

7- Hibernate Tutorial

Может вас интересует:
  • TODO Link!

View more categories: