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

  • 相关阅读:
    APPlication,Session和Cookie的区别
    C# 中的Request对象的应用
    从字符串里提取一个列表(数组)
    UDP:用户数据报协议
    反射
    网络编程
    多线程
    final,finally和finalize的区别
    集合
    StringBuffer
  • 原文地址:https://www.cnblogs.com/lt123/p/7219750.html
Copyright © 2020-2023  润新知