多对一,多对多 ,一对一
public class Item {
private Integer id;
private String productName;
private BigDecimal unitPrice;
private int amount;
private Order order;
}
public class Order {
private Integer id;
private Date createDate;
private Set<Item> items = new HashSet<Item>();
//private int itemsNum; //用于计算item个数
//private int version //乐观锁
}
//继承关系映射
public class Product {
private Integer id;
private String name;
private BigDecimal price;
}
public class Book extends Product {
private String author;
private String publisher;
}
//组合关系映射
public class Question {
private Integer id;
private String name;
private String level;
}
public class ChoiceQuestion extends Question {
private String options;
}
//组件关系映射
public class Person {
private Integer id;
private String name;
private Address address;
}
public class Address {
private String city;
private String street;
}
Item.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.tarena.tts.po">
<class name="Item" table="t_item">
<id name="id" column="t_id" type="integer">
<generator class="identity"></generator>
</id>
<property name="productName" column="t_product_name" type="string"/>
<property name="unitPrice" column="t_unit_price" type="big_decimal"/>
<property name="amount" column="t_amount" type="integer"/>
<many-to-one name="order" class="Order" column="t_order_id"// unique="true"一对一加添unique属性></many-to-one>
</class>
</hibernate-mapping>
Order.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.tarena.tts.po">
<class name="Order" table="t_order">
//指定Order为二级缓存对象
<cache usage="read-only" region="SampleCache1"/>
<id name="id" column="t_id" type="integer">
<generator class="identity"></generator>
</id>
<!--
//乐观锁version标签必须跟在id标签后面加个字段
<version name="version" column="ver" type="integer"></version>
//用于计算item个数
<property name="itemsNum" type="integer" formula="(select count(*) from t_item i where i.t_order_id=t_id)" />
//继承关系映射
<joined-subclass name="Book" table="t_book">
<key column="t_product_id" />
<property name="author" type="string" column="t_author" />
<property name="publisher" type="string" column="t_publisher" />
</joined-subclass>
//组合关系映射
<discriminator type="string" column="t_type" />
<subclass name="ChoiceQuestion" discriminator-value="c">
<property name="options" column="t_options" type="string" />
</subclass>
//组件关系映射
<component name="address" class="Address">
<property name="city" column="t_city" type="string" />
<property name="street" column="t_street" type="string" />
</component>
//自定义hql变量
<query name="findEmpByName"> <![CDATA[from Emp emp where emp.name=?]]> </query>
-->
<property name="createDate" type="timestamp" column="t_create_date" />
//一对多
<set name="items" cascade="all-delete-orphan" inverse="true" lazy="true" fetch="join">
<key column="t_order_id"/>
<one-to-many class="Item"/>
</set>
<!--
//多对多
<set name="courses" table="t_student_course">
<key column="t_student_id" />
<many-to-many class="Course" column="t_course_id" />
</set>
//一对多many(List)在list有序
<list name="persons">
<key column="t_team_id" />
<list-index column="t_turn" base="0" />
<one-to-many class="Person" /> </list>
//一对一
<one-to-one name="user" class="User" property-ref="xuesheng" />
-->
</class>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">
jdbc:mysql://localhost:3306/hibernate_test?useUnicode=true&characterEncoding=utf8
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">2</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!--
//使用线程单例
<property name="current_session_context_class">thread</property>
//添加二级缓存,需要配置ehcache.xml
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
//启用查询缓存,session.createQuery(...);query.setCacheable(true);...
<property name="hibernate.cache.use_query_cache">true</property>
-->
<property name="hibernate.show_sql">true</property>
<mapping resource="com/tarena/tts/po/Order.hbm.xml" />
<mapping resource="com/tarena/tts/po/Item.hbm.xml" />
</session-factory>
</hibernate-configuration>
相关推荐
在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...
通过以上步骤,你已经成功地将Spring和Hibernate整合在一起,使用全XML配置方式实现了数据访问层。这种方式虽然较为繁琐,但能清晰地分离各层职责,便于管理和维护。在实际项目中,还可以考虑使用注解配置或者Spring...
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
本项目整合了这三个框架,并使用XML配置来管理各个组件,实现了基本的CRUD(创建、读取、更新、删除)功能以及分页查询。 首先,Struts2作为表现层框架,负责处理HTTP请求,控制应用程序的流程。通过定义Action类和...
以上就是Tomcat中配置Hibernate XML模板的基本过程。注意,这只是一个基础示例,实际应用中可能需要考虑更多因素,如连接池配置、事务管理、性能优化等。理解并熟练掌握这些配置,能够帮助你更有效地在Java Web环境...
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
"Hibernate XML"特指Hibernate配置和映射文件,这些文件通常以XML格式定义,用于描述Java类与数据库表之间的映射关系以及对象间的关联规则。 标题中的"hibernate xml"涉及到的主要知识点包括: 1. **Hibernate配置...
总之,Hibernate 4 的基本配置包括了XML配置文件、编程式配置、数据库连接方式(JDBC或DataSource)、连接池配置以及事务管理。理解并熟练掌握这些配置方法对于高效使用 Hibernate 进行数据库操作至关重要。
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别专注于依赖注入和对象关系映射。这个"spring2.5+hibernate基于xml配置的...尽管如此,理解XML配置对于理解Spring和Hibernate的基本工作原理仍然至关重要。
针对hibernate关系映射进行了一个总结,包含xml配置形式和@注解配置形式,one-to-many,one-to-noe,many-to-one,many-to-many等单方向的配置和双方都配置的事例
**Hibernate基本配置演示** 在Java开发中,Hibernate是一款强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据。这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利...
标题“Hibernate映射关系配置:XML方式和注解方式”涉及到的是Java持久层框架Hibernate中的一个重要概念——对象关系映射(ORM)。在这个主题中,我们将探讨如何通过XML映射文件和注解来配置Hibernate实体之间的关系...
"hibernate3.3.2所有jar包及xml配置文件" 这个标题表明我们要讨论的是关于Hibernate ORM框架的3.3.2版本,它包括了所有必要的jar包以及一个预配置的`hibernate.cfg.xml`文件。Hibernate是一个流行的Java框架,用于将...
在Hibernate中,XML配置文件扮演着至关重要的角色,它定义了实体类与数据库表之间的映射关系,以及数据源、SessionFactory等核心组件的配置。 XML配置文件通常命名为`hibernate.cfg.xml`,在这个文件中,开发者会...
Struts2-Spring4-Hibernate4 XML配置的框架是一个经典的Java Web开发架构,它整合了三个主流的开源框架:Struts2、Spring4和Hibernate4。这个框架的配置主要通过XML文件来完成,同时也可以结合注解的方式进行更加...
《Hibernate.cfg.xml配置详解》 Hibernate作为一款强大的Java对象关系映射框架,其核心配置文件Hibernate.cfg.xml在项目中起着至关重要的作用。这个文件主要负责定义数据源、连接池、SQL方言、日志以及实体类映射等...
在这个"hibernate的xml配置关系例子"中,我们将探讨如何使用XML配置文件来定义Java对象与数据库表之间的映射关系。 1. Hibernate XML配置文件: Hibernate的核心配置文件通常是`hibernate.cfg.xml`,这个文件包含...
hibernate.cfg.xml hibernate框架的配置文件