hibernate中集合映射总结

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

原文地址:https://www.cnblogs.com/lt123/p/7219750.html