package com.xxx.domain;
public class Person {
private Integer id;
private String name;
private Integer age;
private Car car;
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 Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
}
package com.xxx.domain;
import java.util.ArrayList;
import java.util.List;
public class Car {
private String carName;
private Integer price;
private List<String> compoment=new ArrayList<String>();
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public List<String> getCompoment() {
return compoment;
}
public void setCompoment(List<String> compoment) {
this.compoment = compoment;
}
}
<?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="identity"/>
</id>
<property name="name" column="name" type="string"/>
<property name="age" column="age" type="integer"/>
<component name="car" >
<property name="carName" column="car_name"/>
<property name="price" column="car_price"/>
<list name="compoment" table="tb_compoment">
<key column="person_id"/>
<list-index column="list_key"/>
<element column="list_value" type="string"/>
</list>
</component>
</class>
</hibernate-mapping>
package com.xxx.junit;
import static org.junit.Assert.*;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
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.Car;
import com.xxx.domain.Person;
public class PersonTest {
private SessionFactory sessionFactory=null;
@Before
public void setUp() throws Exception {
Configuration config=new Configuration().configure();
ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
sessionFactory=config.buildSessionFactory(serviceRegistry);
}
@After
public void tearDown() throws Exception {
sessionFactory.close();
}
@Test
public 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);
Car car=new Car();
car.setCarName("aodi");
car.setPrice(200000);
List<String> component=car.getCompoment();
component.add("轮胎");
component.add("喇叭");
person.setCar(car);
session.save(person);
ts.commit();
}
public void find(){
Session session=sessionFactory.openSession();
Transaction ts= session.beginTransaction();
Person person=(Person)session.load(Person.class, 1);
System.out.println("用户名:"+person.getName());
System.out.println("年龄:"+person.getAge());
System.out.println("车的名字:"+person.getCar().getCarName());
System.out.println("车的价格:"+person.getCar().getPrice());
ts.commit();
}
}