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>();//推荐 这样写 简化代码书写