<hibernate-mapping package="com.bjsxt.drp.business.itemmgr.model">
<class name="DataDict" table="t_data_dict">
<id name="id">
<generator class="assigned"/>
</id>
<discriminator column="category" type="string"/>
<property name="name" not-null="true"/>
<subclass name="ItemCategory" discriminator-value="item_category"/>
<subclass name="ItemUnit" discriminator-value="item_unit"/>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.bjsxt.drp.business.itemmgr.model">
<class name="Item" table="t_items">
<id name="itemNo">
<generator class="assigned"/>
</id>
<property name="itemName" not-null="true"/>
<property name="spec"/>
<property name="pattern"/>
<many-to-one name="category"/>
<many-to-one name="unit"/>
</class>
</hibernate-mapping>
Hibernate最佳实践
1. 使用Configuration装载映射文件时,不要使用绝对路径装载,最好的方式是通过getResourceAsStream()装载映射文件,这样Hibernate会从classpath中寻找已配置的映射文件。
2. SessionFactory的创建非常消耗资源,整个应用一般只要一个SessionFactory就够了,只有多个数据库的时候才会使用多个SessionFactory.
3. 在整个应用中,Session和事务应该能够统一管理。
4. 将所有的集合属性诶智设置为懒加载。
5. 关联关系,首先Set
6. 一对多使用双向
7. HQL子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分
8. 非分布式架构中,不需要使用DTO来向上层传输数据,直接使用POJO的Entity就可以了。
9. 如果要精通Hibernate,熟练掌握关系数据库理论和SQL是前提条件。