`
starbhhc
  • 浏览: 657977 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate bag 集合映射

阅读更多
Person.java

package com.aabnn.vo;   
  
import java.util.ArrayList;   
import java.util.Collection;   
  
public class Person {   
    private int id;   
    private String name;   
    private Collection<String> schools=new ArrayList<String>();   
    public Person(){}   
    public Person(String name,Collection<String> schools){   
        this.name=name;   
        this.schools=schools;   
    }   
    public int getId() {   
        return id;   
    }   
    @SuppressWarnings(value="unused")   
    private void setId(int id) {   
        this.id = id;   
    }   
    public String getName() {   
        return name;   
    }   
    public void setName(String name) {   
        this.name = name;   
    }   
    public Collection<String> getSchools() {   
        return schools;   
    }   
    public void setSchools(Collection<String> schools) {   
        this.schools = schools;   
    }   
       
}   
  



Person.hbm.xml

<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC   
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
<hibernate-mapping package="com.aabnn.vo">  
  <class name="Person" table="person">  
    <id name="id" column="id" type="integer">  
        <generator class="identity" />  
    </id>  
    <property name="name" column="name" type="string" />  
    <bag name="schools" table="schools">  
        <key column="id" />  
        <element column="name" type="string"/>  
    </bag>  
  </class>  
</hibernate-mapping>  



Test.java

package com.aabnn.test;   
  
import java.util.ArrayList;   
import java.util.Collection;   
  
import org.hibernate.SessionFactory;   
import org.hibernate.Transaction;   
import org.hibernate.cfg.Configuration;   
import org.hibernate.classic.Session;   
  
import com.aabnn.vo.Person;   
  
public class Test {   
  
    /**  
     * @param args  
     */  
    public static void main(String[] args) {   
        // TODO Auto-generated method stub   
        SessionFactory sf=new Configuration().configure().buildSessionFactory();   
        Session sess=sf.openSession();   
        Transaction tx=sess.beginTransaction();   
        Collection<String> schools=new ArrayList<String>();   
        schools.add("xiaoxue");   
        schools.add("zhongxue");   
        schools.add("daxue");   
        Person p=new Person("xiaoxiao",schools);   
        sess.save(p);   
        tx.commit();   
        sess.close();   
    }   
  
}   
  



mysql 数据库

-- Create schema collectionmapping   
--   
  
CREATE DATABASE IF NOT EXISTS collectionmapping;   
USE collectionmapping;   
  
--   
-- Definition of table `person`   
--   
  
DROP TABLE IF EXISTS `person`;   
CREATE TABLE `person` (   
  `id` int(10) unsigned NOT NULL auto_increment,   
  `name` varchar(45) default NULL,   
  PRIMARY KEY  (`id`)   
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;   
  
--   
-- Dumping data for table `person`   
--   
  
/*!40000 ALTER TABLE `person` DISABLE KEYS */;   
INSERT INTO `person` (`id`,`name`) VALUES    
(1,'xiaoxiao');   
/*!40000 ALTER TABLE `person` ENABLE KEYS */;   
  
  
--   
-- Definition of table `schools`   
--   
  
DROP TABLE IF EXISTS `schools`;   
CREATE TABLE `schools` (   
  `id` int(10) unsigned NOT NULL,   
  `name` varchar(45) default NULL  
) ENGINE=InnoDB DEFAULT CHARSET=utf8;   
  
--   
-- Dumping data for table `schools`   
--   
  
/*!40000 ALTER TABLE `schools` DISABLE KEYS */;   
INSERT INTO `schools` (`id`,`name`) VALUES    
(1,'xiaoxue'),   
(1,'zhongxue'),   
(1,'daxue');   
/*!40000 ALTER TABLE `schools` ENABLE KEYS */;   
分享到:
评论

相关推荐

    hibernate map 集合映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象的集合属性上,以便更好地管理和操作数据。这篇文章将深入探讨Hibernate中的集合映射机制,包括其基本概念、类型以及如何在实际开发中进行...

    Hibernate常见集合映射(Set,List_Array,Map,Bag)

    Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...

    JAVA培训-HIBERNATE的集合映射.doc

    在给定的文档“JAVA培训-HIBERNATE的集合映射.doc”中,主要讲解了Hibernate如何处理不同类型的集合映射,包括Set、List、Array、Map和Bag。我们将详细讨论这些集合映射以及它们在实际应用中的使用。 首先,我们来...

    [原]Hibernate集合映射

    Hibernate支持多种集合映射类型,包括List、Set、Map、Bag、Array等。它们之间的区别主要在于元素的唯一性、顺序性和映射到数据库的实现方式。例如,List和Array维护元素的插入顺序,而Set不允许重复元素;Map则...

    hibernate中的集合映射范例程序

    在这个“hibernate中的集合映射范例程序”中,我们将深入探讨如何在Hibernate中进行集合映射,以及不同集合类型的应用场景。 首先,集合映射是Hibernate中处理一对多、多对多关系的核心机制。它允许我们将一个实体...

    Hibernate集合映射

    **标题:Hibernate集合映射** **正文:** Hibernate作为Java领域中最流行的ORM(对象关系映射)框架之一,它的核心功能之一就是实现Java对象与数据库表之间的映射。集合映射是Hibernate中一个非常关键的概念,它...

    Hibernate教程16_集合映射

    在Java的持久化框架Hibernate中,集合映射是至关重要的一个概念,它允许我们将数据库中的表与Java对象的集合属性进行关联。本教程主要讲解了如何在Hibernate中配置和使用集合映射,以便更好地理解和应用这个强大的...

    hibernate 集合映射

    4. **Bag集合映射** Bag是Hibernate特有的集合类型,类似于List,但不保证元素顺序,性能上比List略优。配置方式与List类似,但使用`&lt;bag&gt;`标签: ```xml &lt;bag name="books" inverse="true" lazy="true"&gt; &lt;/...

    Hibernate映射配置实例大全(详细总结)

    综上所述,"Hibernate映射配置实例大全"涵盖的内容广泛,包括基本的配置文件设置、实体类的XML和注解映射、集合映射、加载策略、事务管理和缓存配置等。通过深入学习和实践这些实例,开发者可以熟练地运用Hibernate...

    Hibernate教程20_关系映射案例三

    9. **集合映射**:在一对多关系中,Hibernate通常使用集合(List, Set, Bag等)来表示多个关联对象。集合类型的选择会影响到数据的唯一性和排序。 10. **外键约束**:在数据库中,关系映射往往涉及到外键约束,...

    Hibernate 对集合属性的操作.zip_hibernate

    2. **集合映射配置**:在Hibernate的映射文件(.hbm.xml)中,我们需要为集合属性配置对应的标签。例如,对于List,我们可以使用`&lt;list&gt;`标签,对于Set使用`&lt;set&gt;`,对于Map使用`&lt;map&gt;`,并指定对应的键(key)和值...

    Hibernate关系映射 收藏

    在映射文件中,`One`端通常定义一个集合属性,如`Set`或`List`,并使用`bag`、`list`、`set`或`map`元素表示。例如,`Teacher`类可能有一个`courses`属性,包含所有教授的课程: ```xml &lt;bag name="courses" ...

    hibernate源码分析过程

    集合映射可以是 set、list、map、bag、array 等。级联策略控制可以控制集合元素的保存和删除。排序策略可以控制集合元素的顺序。 聚合映射 Hibernate 的聚合映射可以将多个对象聚合到一个对象中。聚合映射可以是...

    Hibernate_test

    总结来说,"Hibernate_test"涵盖了Hibernate的基础知识,包括对象关系映射、SessionFactory的创建、集合映射、组件映射以及复合主键的处理。通过学习这些内容,开发者可以更有效地利用Hibernate进行数据库操作,提高...

    在 Hibernate 中实现复杂的数据映射

    这种关系在映射配置中通常通过 `&lt;set&gt;` 或 `&lt;bag&gt;` 标签来定义。 3. **多对多关系**:Student 类与 Course 类之间是多对多的关系,通过 Student_Course_Link 中间表实现。在 Student 类中,有一个类型为 Set 的 ...

    Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践)

    另外,合理使用集合映射配置,如集合类型映射元素、、、&lt;bag&gt;等,是管理集合属性数据的有效方式。 为了实现上述概念,Hibernate提供了一组映射注解和配置文件。映射文件中可以详细配置对象与数据库表之间的映射关系...

Global site tag (gtag.js) - Google Analytics