Hibernate presentation The more you know, the more you realize how much you don't know. The less you know, the more you think you know. ~David T. Freeman author: Khoa.NK
- The Java Persistence API provides a POJO persistence model for object-relational mapping. Java Persistence API
1. Takes care of mapping Java classes to database tables (none-code). 2. Provides simple APIs for storing and retrieving Java objects. 3. SQL types be familiar Java Objects 4. Minimize database access with smart fetching strategies. 5. Save 90% cost (databases) Hibernate Advantages:
Hibernate Architecture
<hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.default_schema">hibernate</property> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <property name="packagesToScan">com.nkk.hibernate.present.entities</property> <mapping resource="entities/Book.hbm.xml"></mapping> <mapping resource="entities/Category.hbm.xml"></mapping> </session-factory> </hibernate-configuration> Hibernate Configuration
<hibernate-mapping> <class name="com.nkk.hibernate.present.entities.CategoryEntity" table="category"> <id name="id" type="int"> <column name="id" precision="10" scale="0" /> <generator class="increment" /> </id> <property name="name" type="string"> <column name="name" length="200" not-null="true" /> </property> </class> </hibernate-mapping> Hibernate Mapping
<set name="books" inverse="true"> <key> <column name="category_id" not-null="true" length="10"></column> </key> <one-to-many class="com.nkk.hibernate.present.entities.BookEntity"></one-to-many> </set> <many-to-one name="category" class="com.nkk.hibernate.present.entities.CategoryEntity" fetch="select"> <column name="category_id" not-null="true"></column> </many-to-one> Hibernate O2M & M2O
- Cache level 1 - Cache level 2 - Query cache Hibernate Caching
Hibernate lazy loading
- Hibernate Query language - Hibernate Criteria query - isDirty() - Hibernate Spring session - Hibernate optimization Orthers

Hibernate Basic Concepts - Presentation