Hibernate 映射
程序员文章站
2022-04-16 22:42:13
...
Hibernate 的映射
一、实体映射
1.基本映射技术(类与表的映射,主键映射,普通字段映射) 类映射
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.po">
<class name="Address2" table="t_address2">
<id name="id">
<generator class="native"></generator>
</id>
<property name="city"/>
<property name="country"/>
</class>
</hibernate-mapping>
二、联合主键映射
<hibernate-mapping
package="com.bjsxt.po">
<class name="Student" table="t_student" lazy="true" >
<composite-id name="id" class="StudentId">
<key-property name="firstname" type="string" column="firstname"/>
<key-property name="lastname"/>
</composite-id>
<property name="major"/>
</class>
</hibernate-mapping>
三、组合关系映射 (一个类和中有另一个类的引用,并将两个类组合成为一个表)
<hibernate-mapping
package="com.bjsxt.po">
<class name="Person" table="t_person" >
<id name="id">
<generator class="native"></generator>
</id>
<component name="address" class="Address"> <!-- 这里的address是另外一个类
Pserson类持有Address类的引用--!>
<property name="city"></property>
<property name="street"></property>
<property name="zipcode"></property>
</component>
<property name="name"></property>
</class>
</hibernate-mapping>
四、大对象映射
所谓的大对象其实不过是数据库中的一种类型,可以将视频或者 图片存入到数据库中。
使用是若用mysql要注意添加一个转码.同时调整mysql中的Blob 为longBlob
jdbc:mysql://localhost:3306/hib?useUnicode=true&characterEncoding=utf-8
五、关联映射
1.一对一映射
1.1唯一外键关连
public class Company {
private int id;
private String name;
private Address2 address2; 持有外键的对象
//get set 方法
}
public class Address2 {
private int id;
private String city;
private String country;
private Company company;
}
<hibernate-mapping package="com.bjsxt.po">
<class name="Company" table="t_company">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"/>
<many-to-one name="address2" class="Address2"
unique="true"
cascade="all" >
<column name="addressId"/>
</many-to-one>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.bjsxt.po">
<class name="Address2" table="t_address2">
<id name="id">
<generator class="native"></generator>
</id>
<property name="city"/>
<property name="country"/>
<one-to-one name="company" class="Company"
property-ref="address2" cascade="save-update"> //此property-ref指的是外键,也就是从address2中找外键
</one-to-one>
</class>
</hibernate-mapping>
1.2主键关联和唯一关联几乎一样 ,唯一的关别在于 将many-to-one 改成one-to-one 删除property-ref 和unique
上一篇: hibernate set集合配置排序
下一篇: Hibernate映射