java,
分享于 点击 18153 次 点评:283
java,
<mapping resource="包名+*.hbm.xml"/>
public class District implement java.io.Serizlizable{
private Integer id;
private String name;
get和set()方法....
}
hibernate 关联映射(1)
关联关系主要有两种:
(1) 关联关系:是通过一个对象持有另一个对象的实例来实现的
(2)泛化关系:通过对象之间的继承方法来实现的
public class Street implements java.io.Serializable{
private Integer id;
private District district;
private String name;
get和set()方法
}
实体之间的关系:关联是指不同表之间的数据彼此联系的方法,数据库的表于表之间的关联关系,以外键的形式来体现.
类与类之间最普遍的关系就是关联关系,
多对一关系映射
<hibernat-mapping>
<class name="包+类名" table="district" >
<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="sequence">
<param name="sequence" >序列名</param>
</generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length=50 not-null=true/>
</property>
</hibernate-mapping>
-------------------------------------------------------------------------
<hibernate-mapping>
<class name="包名+类名" table="street">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="sequence">
<param name="sequence">序列名</param>
</generator>
</id>
<mang-to-one name="district" class="包+类名 column=district_id not null="true" />
<property name="name" type="java.lang.String">
<column name="name" length=50 not-null=true/>
</class>
</hibrenate-mapping>
在配置文件中填上
序列 | 属性 | 含义 | 必须 | 默认值 |
1 | name | 属性名称 | Y | |
2 | class | 包+类名 | N | |
3 | column | 表中的外键 | N | |
4 | not-null | 设置关联的字段是否可以为空 | N | false |
5 | lazy | 指定关联对象是否使用延迟加载以及延迟加载的策略 | N | proxy |
6 | fetch | 设置专区数据的策略 | N | select |
public class Street implements java.io.Serializable{ private Integer id; private Integer district_id; private String name; get和set()方法 } public class District implements java.io.Serializable{ private Integer id; private String name; private Set streets=new HashSet(); get和set()方法 }
District.hbm.xml
<hibernate-mapping>
<class name="包名+类名" table="Street">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="sequence">
<param name="sequence">序列名</param>
</generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true"/>
</property>
<set name="streets" table="street">
<key column="外键"/>
<one-to-many class="包名+类名(com.Street)"></one-to-many>
</set>
</class>
</hibernate-mapping>
序列 | 属性 | 含义 | 必须 | 默认值 |
1 | name | 属性名称(set集合名称) | Y | |
2 | table | 关联类的目标数据库表 | Y | |
3 | lazy | 指定关联对象是否使用延迟加载以及延迟加载的策略 | N | proxy |
4 | fetch | 设置专区数据的策略 | N | select |
5 |
需要注意的是:从表中的外键要设置成允许为空
相关文章
- 暂无相关文章
用户点评