onetoonecachetest.java
来自「好东西,hibernate-3.2.0,他是一开元的树杖hibernate-3.」· Java 代码 · 共 125 行
JAVA
125 行
//$Id: OneToOneCacheTest.java 8894 2005-12-21 13:22:50Z steveebersole $
package org.hibernate.test.legacy;
import java.io.Serializable;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
* Simple testcase to illustrate HB-992
*
* @author Wolfgang Voelkl, michael
*/
public class OneToOneCacheTest extends LegacyTestCase {
public OneToOneCacheTest(String x) {
super(x);
}
public static Test suite() {
return new TestSuite(OneToOneCacheTest.class);
}
private Serializable generatedId;
public void testOneToOneCache() throws HibernateException {
//create a new MainObject
createMainObject();
// load the MainObject
readMainObject();
//create and add Ojbect2
addObject2();
//here the newly created Object2 is written to the database
//but the MainObject does not know it yet
MainObject mainObject = readMainObject();
assertNotNull(mainObject.getObj2());
// after evicting, it works.
getSessions().evict(MainObject.class);
mainObject = readMainObject();
assertNotNull(mainObject.getObj2());
}
/**
* creates a new MainObject
*
* one hibernate transaction !
*/
private void createMainObject() throws HibernateException {
Session session = openSession();
Transaction tx = session.beginTransaction();
MainObject mo = new MainObject();
mo.setDescription("Main Test");
generatedId = session.save(mo);
tx.commit();
session.close();
}
/**
* loads the newly created MainObject
* and adds a new Object2 to it
*
* one hibernate transaction
*/
private void addObject2() throws HibernateException {
Session session = openSession();
Transaction tx = session.beginTransaction();
MainObject mo =
(MainObject) session.load(MainObject.class, generatedId);
Object2 toAdd = new Object2();
toAdd.setDummy("test");
//toAdd should now be saved by cascade
mo.setObj2(toAdd);
tx.commit();
session.close();
}
/**
* reads the newly created MainObject
* and its Object2 if it exists
*
* one hibernate transaction
*/
private MainObject readMainObject() throws HibernateException {
Long returnId = null;
Session session = openSession();
Transaction tx = session.beginTransaction();
Serializable id = generatedId;
MainObject mo = (MainObject) session.load(MainObject.class, id);
tx.commit();
session.close();
return mo;
}
/* (non-Javadoc)
* @see org.hibernate.test.TestCase#getMappings()
*/
protected String[] getMappings() {
return new String[] { "legacy/Object2.hbm.xml", "legacy/MainObject.hbm.xml" };
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?