hibernate4 映射集合属性 set

来源:互联网 发布:1到n的阶乘的和的算法 编辑:程序博客网 时间:2024/05/18 03:04

set与list和array不同,set是无序的,不重复,不需要list-index属性

package com.xxx.domain;import java.util.HashSet;import java.util.Set;public class Person {private Integer id;private String name;private Integer age;private Set<String> subject = new HashSet<String>();public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Set<String> getSubject() {return subject;}public void setSubject(Set<String> subject) {this.subject = subject;}}

<?xml version="1.0"?><!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="com.xxx.domain"><class name="Person" table="tb_person"><id name="id" column="person_id"><generator class="native"/></id><property name="name" column="name" type="string"/><property name="age" column="age" type="integer"/><set name="subject" table="tb_subject"><key column="person_id" not-null="true"/><element column="value" type="string"/></set></class></hibernate-mapping>

package com.xxx.junit;import static org.junit.Assert.*;import java.util.Iterator;import java.util.List;import java.util.Set;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.xxx.domain.Person;public class PersonTest {private SessionFactory sessionFactory=null;@Beforepublic void setUp() throws Exception {Configuration config=new  Configuration().configure();ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();sessionFactory=config.buildSessionFactory(serviceRegistry);}@Afterpublic void tearDown() throws Exception {sessionFactory.close();}@Testpublic void test() {//this.add();this.find();}public void add(){Session session=sessionFactory.openSession();Transaction ts= session.beginTransaction();Person person=new Person();person.setName("小华");person.setAge(22);Set<String> subject=person.getSubject();subject.add("数学");subject.add("语文");subject.add("英语");subject.add("化学");person.setSubject(subject);session.save(person);ts.commit();}public void find(){Session session=sessionFactory.openSession();Transaction ts= session.beginTransaction();Person person=(Person)session.load(Person.class, 2);System.out.println("用户名:"+person.getName());System.out.println("年龄:"+person.getAge());Set<String> subject=person.getSubject();Iterator item=subject.iterator();while(item.hasNext()){System.out.println(item.next());}ts.commit();}}







set集合属性映射,没有index_id列也没有那个属性


0 0
原创粉丝点击