zoukankan      html  css  js  c++  java
  • 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>();//推荐 这样写  简化代码书写 

  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/lt123/p/7219750.html
Copyright © 2011-2022 走看看