Hibernate Учебник
Hibernate, созданныйGavin King, известен как лучший и доминирующий инструмент объектно-реляционной персистентности (ORM) для разработчиков Java (теперь поддерживается .NET). Он предоставляет множество элегантных и инновационных способов упростить задачу обработки реляционных баз данных в Java.
Hibernate хорош во многих вещах, но это то, что нужно использовать надлежащим образом. В этом руководстве представлены многочисленные пошаговые примеры и пояснения по использованию Hibernate3.
P.S Tutorials are updated to Hibernate v3.6.1.Final.
Hibernate Быстрый старт
Пример Hello World для ознакомления с фреймворком Hibernate.
-
Maven 2 + Hibernate 3.2.3 + MySQL 5.0 Example (XML Mapping)
Пример Hibernate 3.2.3 в базе данных MySQL с классическим отображением hbm. -
Maven 2 + Hibernate 3.2.3 + MySQL 5.0 Example (Annotation)
Пример Hibernate 3.2.3 в базе данных MySQL с аннотацией Hibernate / JPA. -
Maven 3 + Hibernate 3.6.3 + Oracle 11g Example (XML Mapping)
Пример Hibernate 3.6 в базе данных Oracle с классическим отображением hbm. -
Maven 3 + Hibernate 3.6.3 + Oracle 11g Example (Annotation)
Пример Hibernate 3.6 в базе данных Oracle с аннотацией Hibernate / JPA.
Hibernate Ассоциация (таблица отношений)
Как определить отношение таблиц один-к-одному, один-ко-многим-ко-многим в Hibernate.
-
One-to-One example (XML Mapping)
Пример перехода в спящий режим с использованием файла сопоставления hbm. -
One-to-One example (Annotation)
Спящий режим один к одному с кодом аннотации. -
One-to-Many example (XML Mapping)
Пример перехода в спящий режим «один ко многим» с файлом сопоставления hbm. -
One-to-Many example (Annotation)
Пример гибернации "один ко многим" с кодом аннотации. -
Many-to-Many example (XML Mapping)
Пример перехода от многих ко многим в режим гибернации (НЕТ дополнительных столбцов в таблице соединений) с помощью файла сопоставления hbm. -
Many-to-Many example (Annotation)
Пример перехода «многие ко многим» (НЕТ дополнительных столбцов в объединенной таблице) с кодом аннотации. -
Many-to-Many example – join table + extra column (Annotation)
Пример гибернации многих ко многим (С дополнительным столбцом в объединенной таблице) с кодом аннотации. -
Off Topic : Understand inverse keywork, example and explanation
«Обратное» - это самое запутанное ключевое слово в Hibernate, но вы должны четко понимать это, чтобы точно настроить производительность ваших отношений.
Hibernate / JBoss Tools + Eclipse IDE
Научиться пользоваться инструментами Hibernate просто необходимо!
-
Install Hibernate / JBoss Tools in Eclipse IDE
Установите Hibernate в вашей Eclipse IDE. -
Generate Hibernate mapping files & annotation with Hibernate Tools
Автоматически генерирует коды гибернации для вас.
Вход в спящий режим
Как сделать вход в Hibernate
-
Configure logging in Hibernate – SLF4j + Log4j
Интегрируйте SLF4j + Log4j с Hibernate. -
Configure logging in Hibernate – Logback
Интегрируйте Logback с Hibernate.
Hibernate Connection Pool
Как настроить пул соединений с базой данных в Hibernate
-
Configure C3P0 connection pool in Hibernate
Интегрируйте C3P0 с Hibernate. -
Configure DBCP connection pool in Hibernate
Интеграция Apache DBCP с Hibernate.
Спящий Каскад
Каскад гибернации используется для автоматического управления состоянием другой стороны.
-
Cascade example (save, update, delete and delete-orphan)
Примеры каскадирования при сохранении, обновлении, удалении и удалении orphan. И разница между удалением и удалением сироты. -
Different between cascade and inverse
Многие разработчики Hibernate не понимают различий между каскадом и инверсией, вот объяснение. -
Cascade – JPA & Hibernate annotation common mistake
Очень простая распространенная ошибка аннотации, которую допускают новички или опытные разработчики Hibernate - каскадная аннотация JPA в Hibernate?
Hibernate Query Language (HQL)
Собственный язык Hibernate для манипулирования данными, он очень похож на язык баз данных SQL.
-
Hibernate Query examples (HQL)
Примеры HQL CRUD, выбор, обновление, удаление и пакетная вставка (без поддержки отдельной вставки). -
Hibernate parameter binding examples
Свяжите параметр в HQL с помощью методов «Именованные параметры» и «Позиционные параметры». -
How to embed Oracle hints in Hibernate query
Уловка для встраивания подсказок Oracle в Hibernate Query для увеличения производительности запросов Oracle.
Критерии гибернации
Hibernate Criteria API является альтернативой Hibernate Query Language (HQL). Это всегда хорошее решение во многих дополнительных критериях поиска.
-
Hibernate Criteria examples
Примеры критериев - базовый запрос, запрос упорядочивания, запрос ограничений и разбиение на страницы результата.
Hibernate Native SQL
В некоторых случаях Hibernate HQL или Criteria просто недостаточно для того, чтобы делать то, что вы хотите, здесь вы можете напрямую использовать собственный язык SQL базы данных.
-
Hibernate native SQL queries examples
Руководство, показывающее, как использовать собственный SQL в Hibernate.
Hibernate Named Query
Named Query позволяет разработчикам помещать HQL в файл отображения XML или аннотацию для удобства сопровождения, вы просто не хотите, чтобы весь ваш синтаксис HQL разбросан по всему коду Java. :)
-
Hibernate named query examples
Работа с именованным запросом в XML-файле и аннотации.
Hibernate Транзакция
Все вещи, связанные с транзакцией Hibernate
-
Hibernate Transaction handle example
Простой стандартный пример использования транзакции Hibernate.
Hibernate Advance Technique
Некоторая техника Hibernate Advance, редко используемая, но практические навыки (фильтр данных и перехватчик).
-
Hibernate data filter example – XML and annotation
Фильтр данных Hibernate используется для фильтрации данных, полученных из базы данных. Вот руководство по работе с фильтром данных в XML или аннотациях. -
Hibernate interceptor example – audit log
Перехватчик Hibernate используется для перехвата событий Hibernate, таких как операции CRUD, подробный пример реализации журнала аудита с перехватчиком Hibernate.
Hibernate Performance
Некоторые твики заставят ваш Hibernate работать быстрее :)
-
dynamic-insert attribute example
Использование динамической вставки, чтобы избежать включения неизмененных свойств в оператор SQL INSERT. -
dynamic-update attribute example
Использование динамической вставки, чтобы избежать включения неизмененных свойств в оператор SQL UPDATE. -
Hibernate mutable example (class and collection)
Использование ключевого слова mutable, чтобы избежать генерации ненужных операторов SQL. -
Hibernate – fetching strategies examples
Стратегии выборки Hibernate используются для оптимизации сгенерированного оператора select, сгенерированного Hibernate, навык, который должен изучить любой разработчик Hibernate. -
Different between session.get() and session.load()
Понимание, когда следует использовать get или load для получения объекта, чтобы избежать ненужного попадания в базу данных.
Интеграция Hibernate с другими платформами
Примеры интеграции Hibernate с другими фреймворками.
-
Struts + Hibernate Integration
Пример интеграции Hibernate с фреймворком Struts. -
Struts + Spring + Hibernate Integration
Пример интеграции Hibernate с фреймворком Struts и Spring вместе. -
Spring + Hibernate Integration
Пример интеграции Hibernate со средой Spring. -
Spring + Hibernate Integration (Annotation)
Пример интеграции Hibernate со средой Spring (версия с аннотацией).
Hibernate FAQ
Некоторые частые ответы на вопросы:
-
How to load hibernate.cfg.xml from different directory
По умолчанию Hibernate просматривает hibernate.cfg.xml по пути к классу проекта, вот руководство по загрузке его из указанной папки. -
How to add Hibernate XML mapping file (hbm.xml) programmatically
Совет по программной загрузке hibernate.cfg.xml -
List of Hibernate database Dialect
Список диалектной коллекции для разных типов поставщиков баз данных. -
show_sql , format_sql and use_sql_comments
Настройте Hibernate для отображения сгенерированного оператора SQL в консоли. -
How to display hibernate sql parameter values – P6Spy
Использование сторонней библиотеки P6Sqpy для отображения значения параметра Hibernate SQL. -
How to display hibernate sql parameter values – Log4j
Использование Log4j для отображения значения параметра Hibernate SQL. -
How to call store procedure in Hibernate
Не рекомендуется добавлять бизнес-логику в процедуру хранения, не говоря уже о том, что вы все равно разрешаете вызывать процедуру хранения в Hibernate. -
How to use database reserved keyword in Hibernate
В некоторых особых случаях вам может потребоваться использовать ключевое слово базы данных в вашем классе Hibernate (не рекомендуется), вот трюк, чтобы добиться этого. -
How to save an image into database
Учебное пособие, показывающее, как использовать Hibernate для сохранения изображения в базе данных.
Распространенные ошибки Hibernate
Вот список распространенных сообщений об ошибках в разработке Hibernate.
-
Невозможно вставить, если столбец named является ключевым словом, например DESC
-
java.lang.ClassNotFoundException : javassist.util.proxy.MethodFilter
-
Помните, что порядковые параметры основаны на 1! - Шаблон гибернации
-
Экземпляр AnnotationConfiguration требуется для использования
-
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
-
java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
-
java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
-
java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/DataSources
-
java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
-
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
-
java.lang.ClassNotFoundException: javax.transaction.TransactionManager
Не по теме
-
Why i choose Hibernate framework for my project?
Причины, по которым мне нравится внедрять Hibernate в будущем проекте.