hibernate<4>-----一对一
IdCard.java
package cn.anycall.hibernate.domain;import java.util.Date;public class IdCard {private int id;private Date usefulLife;private Person person;public int getId() {return id;}public void setId(int id) {this.id = id;}public Date getUsefulLife() {return usefulLife;}public void setUsefulLife(Date usefulLife) {this.usefulLife = usefulLife;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}package cn.anycall.hibernate.domain;import java.util.Set;public class Person {private int id;private String name;private IdCard idCard;public int getId() {return id;}public IdCard getIdCard() {return idCard;}public void setIdCard(IdCard idCard) {this.idCard = idCard;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}<?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="cn.anycall.hibernate.domain"><class name="IdCard" table="id_card" ><id name="id" column="id"><generator column="useful_life"/><one-to-one name="person" constrained="true"/></class></hibernate-mapping>
<?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="cn.anycall.hibernate.domain"><class name="Person" ><id name="id" column="id"><generator name="code"><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///test</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hbm2ddl.auto">create</property><property name="show_sql">true</property><mapping resource="cn/anycall/hibernate/domain/Person.hbm.xml"/><mapping resource="cn/anycall/hibernate/domain/IdCard.hbm.xml"/></session-factory></hibernate-configuration>
package cn.anycall.hibernate;import java.io.Serializable;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public final class HibernateUtil {private static SessionFactory sessionFactory;public static SessionFactory getSessionFactory() {return sessionFactory;}public static void setSessionFactory(SessionFactory sessionFactory) {HibernateUtil.sessionFactory = sessionFactory;}private HibernateUtil(){}public static Session getSession(){return getSessionFactory().openSession();}static{Configuration cfg = new Configuration();cfg.configure();sessionFactory = cfg.buildSessionFactory();}public static void add(Object entity){Session s = null;Transaction tx = null;try{s = HibernateUtil.getSession();tx = s.beginTransaction();s.save(entity);tx.commit();}finally{if(s !=null)s.close();}}public static void update(Object entity){Session s = null;Transaction tx = null;try{s = HibernateUtil.getSession();tx = s.beginTransaction();s.update(entity);tx.commit();}finally{if(s !=null)s.close();}}public static void delete(Object entity){Session s = null;Transaction tx = null;try{s = HibernateUtil.getSession();tx = s.beginTransaction();s.delete(entity);tx.commit();}finally{if(s !=null)s.close();}}public static Object get(Class clazz, Serializable id){Session s = null;try{s = HibernateUtil.getSession();Object obj = s.get(clazz, id);return obj;}finally{if(s !=null)s.close();}}}package cn.anycall.hibernate;import java.util.Date;import org.hibernate.Hibernate;import org.hibernate.Session;import org.hibernate.Transaction;import cn.anycall.hibernate.domain.IdCard;import cn.anycall.hibernate.domain.Person;public class One2One {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubPerson p = add();//Person p1 = query(1);//System.out.println(p1.getName());//System.out.println(p1.getIdCard().getUsefulLife());IdCard c = query1(1);System.out.println(c.getUsefulLife());System.out.println(c.getPerson().getName());}static Person add(){Session s = null;Transaction tx = null;try{s = HibernateUtil.getSession();tx = s.beginTransaction();IdCard idCard = new IdCard();idCard.setUsefulLife(new Date());Person p = new Person();p.setName("p1");idCard.setPerson(p);s.save(p);s.save(idCard);tx.commit();System.out.println("end");return p;}finally{if(s!=null)s.close();}}static Person query(int id){Session s = null;try{s = HibernateUtil.getSession();Person p = (Person)s.get(Person.class, id);return p;}finally{if(s!=null)s.close();}}static IdCard query1(int id){Session s = null;try{s = HibernateUtil.getSession();IdCard c = (IdCard)s.get(IdCard.class, id);Hibernate.initialize(c.getPerson());return c;}finally{if(s!=null)s.close();}}}