`

[转]hibernate 集合类(Collections)映射(二)- List

阅读更多


Java
代码

public class Many2One {  

 

    public static void main(String[] args) {  

        Department depart = add();  

        Department department = queryDepart(depart.getId());  

    }  

 

    static Department queryDepart(int departId) {  

        Session s = null;  

        Transaction tx = null;  

        try {  

            s = HibernateUtil.getSession();  

            tx = s.beginTransaction();  

            Department depart = (Department) s.get(Department.class, departId);  

            System.out.println("emps" + depart.getEmps());  

            tx.commit();  

            return depart;  

        } finally {  

            if (s != null)  

                s.close();  

        }  

    }  

 

    static Department add() {  

        Session s = null;  

        Transaction tx = null;  

        try {  

            Department depart = new Department();  

            depart.setName("department name");  

              

            Employee employee1 = new Employee();  

            employee1.setName("employee1 name1");  

              

            Employee employee2 = new Employee();  

            employee2.setName("employee2 name2");  

              

            List<Employee> list= new ArrayList<Employee>();  

            list.add(employee1); //1  

            list.add(employee2); //2  

            depart.setEmps(list);  

              

            s = HibernateUtil.getSession();  

            tx = s.beginTransaction();  

            s.save(depart);  

            s.save(employee1);  

            s.save(employee2);  

            tx.commit();  

            return depart;  

        } finally {  

            if (s != null)  

                s.close();  

        }  

    }  

} 

 

public class Many2One {

 

    public static void main(String[] args) {

       Department depart = add();

       Department department = queryDepart(depart.getId());

    }

 

    static Department queryDepart(int departId) {

       Session s = null;

       Transaction tx = null;

       try {

           s = HibernateUtil.getSession();

           tx = s.beginTransaction();

           Department depart = (Department) s.get(Department.class, departId);

           System.out.println("emps" + depart.getEmps());

           tx.commit();

           return depart;

       } finally {

           if (s != null)

              s.close();

       }

    }

 

    static Department add() {

       Session s = null;

       Transaction tx = null;

       try {

           Department depart = new Department();

           depart.setName("department name");

          

           Employee employee1 = new Employee();

           employee1.setName("employee1 name1");

          

           Employee employee2 = new Employee();

           employee2.setName("employee2 name2");

          

           List<Employee> list= new ArrayList<Employee>();

           list.add(employee1); //1

           list.add(employee2); //2

           depart.setEmps(list);

          

           s = HibernateUtil.getSession();

           tx = s.beginTransaction();

           s.save(depart);

           s.save(employee1);

           s.save(employee2);

           tx.commit();

           return depart;

       } finally {

           if (s != null)

              s.close();

       }

    }

}

 执行测试类,控制台打印如下信息:

 

emps[id=1 name=employee1 name1, id=2 name=employee2 name2]

 

将测试类中注释为1和注释为2的语句对换顺序后,重新执行,控制台打印如下信息:

 

emps:[id=2 name=employee2 name2, id=1 name=employee1 name1]

 

再看数据库表中的记录,如下所示:

 

mysql> select * from department;

+----+-----------------+

| id | name            |

+----+-----------------+

|  1 | department name |

+----+-----------------+

1 row in set (0.00 sec)

 

mysql> select * from employee;

+----+-----------------+-----------+-----------+

| id | name            | depart_id | order_col |

+----+-----------------+-----------+-----------+

|  1 | employee1 name1 |         1 |         1 |

|  2 | employee2 name2 |         1 |         0 |

+----+-----------------+-----------+-----------+

2 rows in set (0.00 sec)

 

说明使用List时,因为配置文件下增加了<list-index column="order_col" />对加入List集合的元素的顺序进行记录,测试结果表明,确实对加入顺序进行了记录。

分享到:
评论

相关推荐

    HibernateAPI中文版.chm

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    hibernate3.2中文文档(chm格式)

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    Hibernate+中文文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    Hibernate中文详细学习文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    Hibernate 中文 html 帮助文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. 索引...

    hibernate 体系结构与配置 参考文档(html)

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. ...

    最全Hibernate 参考文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. 索引...

    Hibernate教程

    7. 集合类(Collections)映射 7.1. 持久化集合类(Persistent collections) 7.2. 集合映射( Collection mappings ) 7.2.1. 集合外键(Collection foreign keys) 7.2.2. 集合元素(Collection elements) 7.2.3. ...

    hibernate 教程

    集合类(Collections)映射 6.1. 持久化集合类(Persistent Collections) 6.2. 映射集合(Mapping a Collection) 6.3. 值集合和多对多关联(Collections of Values and Many-To-Many Associations) 6.4. ...

    Hibernate参考文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. 索引...

    hibernate3.04中文文档.chm

    7. 集合类(Collections)映射 7.1. 持久化集合类(Persistent collections) 7.2. 集合映射( Collection mappings ) 7.2.1. 集合外键(Collection foreign keys) 7.2.2. 集合元素(Collection elements) 7.2.3. ...

    hibernate 框架详解

    7. 集合类(Collections)映射 7.1. 持久化集合类(Persistent collections) 7.2. 集合映射( Collection mappings ) 7.2.1. 集合外键(Collection foreign keys) 7.2.2. 集合元素(Collection elements) 7.2.3...

    Hibernate中文API大全

    注意:在Hibernate3中,第二个要求并非是Hibernate强制必须的。但最好这样做。 你不能使用一个IdentifierGenerator产生组合关键字。一个应用程序必须分配它自己的标识符。 使用&lt;composite-id&gt; 标签(并且内嵌&lt;key...

    Hibernate3+中文参考文档

    6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合元素(Collection elements) 6.2.3. 索引...

    hibernate

    集合类(Collections)映射 6.1. 持久化集合类(Persistent Collections) 6.2. 映射集合(Mapping a Collection) 6.3. 值集合和多对多关联(Collections of Values and Many-To-Many Associations) 6.4. ...

    NHibernate中文帮助手册API

    集合类(Collections)映射  6.1. 持久化集合类  6.2. 集合外键(Collection foreign keys)  6.3. 值集合于多对多关联(Collections of values and many-to-many associations)  6.4. 一对多关联  6.5. 延迟...

    NHibernate中文帮组文档(2008.11月更新)

    6. 集合类(Collections)映射 6.1. 持久化集合类 6.2. 集合外键(Collection foreign keys) 6.3. 值集合于多对多关联(Collections of values and many-to-many associations) 6.4. 一对多关联 6.5. 延迟加载 6.6. 有序...

    NHibernate参考文档 2.0.0 chm

    6. 集合类(Collections)映射 6.1. 持久化集合类 6.2. 集合外键(Collection foreign keys) 6.3. 值集合于多对多关联(Collections of values and many-to-many associations) 6.4. 一对多关联 6.5. 延迟加载 6.6. 有序...

    java面试题

    Collections是针对集合类的帮助类,它提供了一系列针对集合的搜索,排序,线程安全化等操作。 final、finally、finalize的区别? 答:final用于声明属性方法和类,分别表示:属性不可变,方法不可覆盖,类不可继承...

Global site tag (gtag.js) - Google Analytics