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 */;
分享到:
相关推荐
在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象的集合属性上,以便更好地管理和操作数据。这篇文章将深入探讨Hibernate中的集合映射机制,包括其基本概念、类型以及如何在实际开发中进行...
Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...
在给定的文档“JAVA培训-HIBERNATE的集合映射.doc”中,主要讲解了Hibernate如何处理不同类型的集合映射,包括Set、List、Array、Map和Bag。我们将详细讨论这些集合映射以及它们在实际应用中的使用。 首先,我们来...
Hibernate支持多种集合映射类型,包括List、Set、Map、Bag、Array等。它们之间的区别主要在于元素的唯一性、顺序性和映射到数据库的实现方式。例如,List和Array维护元素的插入顺序,而Set不允许重复元素;Map则...
在这个“hibernate中的集合映射范例程序”中,我们将深入探讨如何在Hibernate中进行集合映射,以及不同集合类型的应用场景。 首先,集合映射是Hibernate中处理一对多、多对多关系的核心机制。它允许我们将一个实体...
**标题:Hibernate集合映射** **正文:** Hibernate作为Java领域中最流行的ORM(对象关系映射)框架之一,它的核心功能之一就是实现Java对象与数据库表之间的映射。集合映射是Hibernate中一个非常关键的概念,它...
在Java的持久化框架Hibernate中,集合映射是至关重要的一个概念,它允许我们将数据库中的表与Java对象的集合属性进行关联。本教程主要讲解了如何在Hibernate中配置和使用集合映射,以便更好地理解和应用这个强大的...
4. **Bag集合映射** Bag是Hibernate特有的集合类型,类似于List,但不保证元素顺序,性能上比List略优。配置方式与List类似,但使用`<bag>`标签: ```xml <bag name="books" inverse="true" lazy="true"> </...
综上所述,"Hibernate映射配置实例大全"涵盖的内容广泛,包括基本的配置文件设置、实体类的XML和注解映射、集合映射、加载策略、事务管理和缓存配置等。通过深入学习和实践这些实例,开发者可以熟练地运用Hibernate...
9. **集合映射**:在一对多关系中,Hibernate通常使用集合(List, Set, Bag等)来表示多个关联对象。集合类型的选择会影响到数据的唯一性和排序。 10. **外键约束**:在数据库中,关系映射往往涉及到外键约束,...
2. **集合映射配置**:在Hibernate的映射文件(.hbm.xml)中,我们需要为集合属性配置对应的标签。例如,对于List,我们可以使用`<list>`标签,对于Set使用`<set>`,对于Map使用`<map>`,并指定对应的键(key)和值...
在映射文件中,`One`端通常定义一个集合属性,如`Set`或`List`,并使用`bag`、`list`、`set`或`map`元素表示。例如,`Teacher`类可能有一个`courses`属性,包含所有教授的课程: ```xml <bag name="courses" ...
集合映射可以是 set、list、map、bag、array 等。级联策略控制可以控制集合元素的保存和删除。排序策略可以控制集合元素的顺序。 聚合映射 Hibernate 的聚合映射可以将多个对象聚合到一个对象中。聚合映射可以是...
总结来说,"Hibernate_test"涵盖了Hibernate的基础知识,包括对象关系映射、SessionFactory的创建、集合映射、组件映射以及复合主键的处理。通过学习这些内容,开发者可以更有效地利用Hibernate进行数据库操作,提高...
这种关系在映射配置中通常通过 `<set>` 或 `<bag>` 标签来定义。 3. **多对多关系**:Student 类与 Course 类之间是多对多的关系,通过 Student_Course_Link 中间表实现。在 Student 类中,有一个类型为 Set 的 ...
另外,合理使用集合映射配置,如集合类型映射元素、、、<bag>等,是管理集合属性数据的有效方式。 为了实现上述概念,Hibernate提供了一组映射注解和配置文件。映射文件中可以详细配置对象与数据库表之间的映射关系...