Используйте инструменты Hibernate для создания классов Entity из таблиц
1. Введение
This document is based on:
Eclipse 4.5 (MARS)
Hibernate 5.1.0.Final
Hibernate Tools 4.3.1.Final.html
Для начала, вам нужно удостовериться что вы установили "Hibernate Tools" в Eclipse. "Hibernate Tools" это один из инструментов в JBoss - "JBoss Tools".

Смотрите так же:
2. Пример базы даных, использованной в этом документе

База данных, использующаяся для иллюстрации в данной статье является "simplehr". Можете посмотреть по ссылке:
3. Подключить Database через "Database Development"
В Eclipse выбрать:
- Window/Perspective/Open Perspective/Other...


Создать новое connection к базе данных simplehr:

В данном руководстве я соединю к базе данных Oracle. Вы можете соединить к другой базе данных, способ выполнения будет абсолютно таким же.

Нажмите на значок, чтобы объявить Driver для выбранной вами базы данных.


Нажмите на "Add JAR/Zip"

Введите информацию, чтобы подключить к базе данных. Затем, нажмите "Test Connection" чтобы удостовериться в успешном подключении к базе данных.




Вы моежете увидеть структуру вашей базы данных в "Data Source Explorer".

Попробуйте запросить query данные в таблице.


4. Создать Project



Введите:
- 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. Конфигурация 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. Аппендикс: Ошибка при создании entity
Может при создании 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:


Руководства Java Hibernate
- Запрос Java Hibernate
- Установите JBoss Tools для Eclipse
- Используйте инструменты Hibernate для создания классов Entity из таблиц
- Создание таблиц из классов Entity в Hibernate
- Разбиение по страницам (Pagination) в Java Hibernate
- Руководство Java Hibernate для начинающих
Show More