hibernate many-to-one 测试

CREATE table t_card(

id bigint identity primary key,

card_no varchar(50),

person_id bigint  foreign key references t_user(id)  on delete cascade unique

)

  

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!-- Generated 2012-7-19 11:40:58 by Hibernate Tools 3.4.0.CR1 -->

<hibernate-mapping>

    <class name="com.cg.foo.TUser" table="t_user">

        <id name="id" type="long">

            <column name="id" />

            <generator class="native" />

        </id>

        <property name="name" type="string">

            <column name="name" length="20" />

        </property>

        <property name="nickname" type="string">

            <column name="nickname" length="30" />

        </property>

        <property name="birthday" type="timestamp">

            <column name="birthday" length="23" />

        </property>

        <set name="TCards" table="t_card" inverse="true" lazy="true" fetch="select">

            <key>

                <column name="person_id" unique="true" />

            </key>

            <one-to-many class="com.cg.foo.TCard" />

        </set>

    </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">

<!-- Generated 2012-7-19 11:40:58 by Hibernate Tools 3.4.0.CR1 -->

<hibernate-mapping>

    <class name="com.cg.foo.TCard" table="t_card">

        <id name="id" type="long">

            <column name="id" />

            <generator class="native" />

        </id>

        <many-to-one name="TUser" class="com.cg.foo.TUser" fetch="select">

            <column name="person_id" unique="true" />

        </many-to-one>

        <property name="cardNo" type="string">

            <column name="card_no" length="50" />

        </property>

    </class>

</hibernate-mapping>

  

package org.hibernate.tutorial.util;



import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;



public class HibernateUtil {



	private static final SessionFactory sessionFactory = buildSessionFactory();



	private static SessionFactory buildSessionFactory() {

		try {

			// Create the SessionFactory from hibernate.cfg.xml

			return new Configuration().configure().buildSessionFactory();

		} catch (Throwable ex) {

			// Make sure you log the exception, as it might be swallowed

			System.err.println("Initial SessionFactory creation failed." + ex);

			throw new ExceptionInInitializerError(ex);

		}

	}



	public static SessionFactory getSessionFactory() {

		return sessionFactory;

	}



}

  

Test:

package com.cg.test;



import java.util.Date;



import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.hibernate.tutorial.util.HibernateUtil;

import org.junit.Test;



import com.cg.foo.TCard;

import com.cg.foo.TUser;



public class TestTUser {



	@Test

	public void test() {

		TUser user=new TUser();

		user.setBirthday(new Date());

		user.setId(33);

		user.setName("吴xx");

		user.setNickname("昵称");

		

		Configuration cfg = new Configuration().configure();

		SessionFactory sf = cfg.buildSessionFactory();

		Session sess = sf.getCurrentSession();

		sess.beginTransaction();

		

		System.out.println(user.toString());

		Object obj = sess.save(user);

		System.out.println("PSERSISTED RET VALUE:"+obj.toString());

		

		sess.getTransaction().commit();

//		sess.close();		//Auto closed by ThreadLocalSessionContext

	}



	@Test

	public void testUserHibernateUtil(){

		TUser user=new TUser();

		user.setBirthday(new Date());

		user.setId(33);

		user.setName("张三abc~!@222222");

		user.setNickname("昵称~!@22");

		

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();

		session.beginTransaction();

		session.save(user);

		session.getTransaction().commit();

		

		System.out.println("完成");

	}

	

	@Test

	public void testUserCard(){

		TUser user=new TUser();

		user.setBirthday(new Date());

		user.setId(33);

		user.setName("张三abc~!@222222");

		user.setNickname("昵称~!@22");

		

		TCard card=new TCard();

		card.setCardNo("110");

		card.setTUser(user);

		

		

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();

		session.beginTransaction();

		session.save(user);

		session.save(card);

		session.getTransaction().commit();

		

		System.out.println("完成");

	}

	

	@Test

	public void testGetUserCard(){

		Session sess = HibernateUtil.getSessionFactory().getCurrentSession();

		sess.beginTransaction();

		

		Object obj = sess.get(TCard.class, 1L);

		TCard card = (TCard)obj;

		System.out.println(card.getId());

		System.out.println(card.getCardNo());

		System.out.println(card.getTUser().getName());

		System.out.println(card.getTUser().getBirthday());

		sess.getTransaction().commit();

		

		System.out.println("done");

	}

	

	@Test

	public void testGetCardByUser(){

		Session sess = HibernateUtil.getSessionFactory().getCurrentSession();

		sess.beginTransaction();

		

		Object obj = sess.get(TUser.class, 7L);

		TUser user= (TUser)obj;



		System.out.println(user.getName());

		System.out.println(user.getBirthday());

		

		TCard card = (TCard) (user.getTCards().toArray()[0]);

		System.out.println(card.getId());

		System.out.println(card.getCardNo());

		sess.getTransaction().commit();

		

		System.out.println("done");

	}

}

  

 

你可能感兴趣的:(many-to-one)