您的位置:首页 > 其它

Hibernate 映射关系 一对多 单向映射文件配置

2017-03-09 23:13 411 查看
在处理数据库实体关系时,需要配置对应的实体类映射文件这里仅有一对多关系的set、list、map;

有一个对象代码如下

public class User {
private Integer id;
private String name;
private Set<String> addressSet=new HashSet<String>();
private List<String> addressList=new ArrayList<String>();
private String[] addressArray;
private Map<String,String> addressMap=new HashMap<String, String>();
private List<String> addressBag=new ArrayList<String>();
//省略setters和getters方法
}


对应User.hbm.xml文件配置如下(一个User对应多个地址address)

set

<class name="User" table="t_user" >
........
<!-- name对应的用户的属性名 table为创建表-->
<set name="addressSet" table="user_addressSet">
<!--不需要指定实体类主键,系统默认对应实体类主键id-->
<key cloumn="userId"></key>
<!--对应要创建的表中的元素名称和类型-->
<element type="string" column="address"></element>
</set>
</class>


这种情况的set为无序不重复存储,当然也可以修改变为可以排序的set。

list

<class name="User" table="t_user" >
........
<list name="addressList" table="user_addressList">
<key cloumn="userId"></key>
<!-- 这是与Set的区别 因为list是有序的 所以必须有索引-->
<list-index column="idx"></list-index>
<element type="string" column="address"></element>
</list>
</class>


map

<class name="User" table="t_user" >
........
<map name="addressList" table="user_addressLmap">
<key cloumn="userId"></key>
<!-- 这是与list的区别 因为map是有键值对无序 所以把list中索引替换为键值 索引为数值 而键值不一定所以要指定类型 所以必须有索引-->
<map-key type="string" column="key_"></map-key>
<element type="string" column="address"></element>
</map>
</class>


待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: