set集合映射三要素(从javabean映射到数据 ORM))
1,集合表(外键表,子表)名称
2.,指定集合表外键<key column="">
3.集合表其他元素<element type="" column="">
<set name="addressSet" table="user_addressSet" order-by="address ASC">
<key column="userId"></key>
<element type="string" column="address"></element>
</set>
注意存取集合元素时 要new
但是 这种写法更好
private int id;
private String name;
// private Set<String> addressSet;//数据库中不会存这一条
private Set<String> addressSet=new HashSet<String>();//推荐 这样写 简化代码书写
public void test()
{
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
User user=new User();
Set<String> set=new HashSet<String>();
set.add("蚌埠");
//对象中的对象 是需要new的
set.add("宣城");
user.setName("ss");
user.setAddressSet(set);
session.save(user);
tx.commit();
session.close();
}
集合映射 共有一下几种
set(无序,不重复,最常用)
list(重复,排序,必须要添加索引列)
array(同list)
map(key/value 无序,不重复 )
{
创建映射四个要素
1.表名
2.key 外键
3.key-index ->key
4.element ->value
少一不可
}
5.bag(无序,可重复,基本不用)
需注意的地方
1.配置文件 属性也要按照严格的顺序来写
2.key desc是关键字需注意
Element : list
Content Model : (meta*, subselect?, cache?, synchronize*, comment?, key, (index | list-index), (element
| one-to-many | many-to-many | composite-element | many-to-any), loader?, sql-insert?, sql-update?,
sql-delete?, sql-delete-all?, filter*)
3.<!-- key->子表 外键 element-> 子表属性列 -->
4.声明用接口 因为session执行函数时会将List转化为hibernate类型 ,方便处理
private List<String> addressList=new ArrayList<String>();
5.对象中声明对象 推荐 ,只声明当然也行 ,但是new时别忘了
private Set<String> addressSet=new HashSet<String>();//推荐 这样写 简化代码书写