📄 hibernatetemplatetests.java
字号:
TransactionSynchronizationManager.bindResource(sf, new SessionHolder(session2));
try {
final List l = new ArrayList();
l.add("test");
List result = ht.executeFind(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session session) throws HibernateException {
return l;
}
});
assertTrue("Correct result list", result == l);
}
finally {
TransactionSynchronizationManager.unbindResource(sf);
}
}
public void testExecuteWithThreadBoundAndNewSessionAndEntityInterceptor() throws HibernateException {
MockControl interceptorControl = MockControl.createControl(org.hibernate.Interceptor.class);
Interceptor entityInterceptor = (Interceptor) interceptorControl.getMock();
MockControl conControl = MockControl.createControl(Connection.class);
Connection con = (Connection) conControl.getMock();
MockControl session2Control = MockControl.createControl(Session.class);
Session session2 = (Session) session2Control.getMock();
session2.connection();
session2Control.setReturnValue(con, 1);
sf.openSession(con, entityInterceptor);
sfControl.setReturnValue(session, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
session2Control.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setAlwaysUseNewSession(true);
ht.setEntityInterceptor(entityInterceptor);
TransactionSynchronizationManager.bindResource(sf, new SessionHolder(session2));
try {
final List l = new ArrayList();
l.add("test");
List result = ht.executeFind(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session session) throws HibernateException {
return l;
}
});
assertTrue("Correct result list", result == l);
}
finally {
TransactionSynchronizationManager.unbindResource(sf);
}
}
public void testExecuteWithEntityInterceptor() throws HibernateException {
MockControl interceptorControl = MockControl.createControl(org.hibernate.Interceptor.class);
Interceptor entityInterceptor = (Interceptor) interceptorControl.getMock();
sf.openSession(entityInterceptor);
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setEntityInterceptor(entityInterceptor);
final List l = new ArrayList();
l.add("test");
List result = ht.executeFind(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session session) throws HibernateException {
return l;
}
});
assertTrue("Correct result list", result == l);
}
public void testExecuteWithCacheQueries() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
query1.setCacheable(true);
query1Control.setReturnValue(query1, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
query2.setCacheable(true);
query2Control.setReturnValue(query2, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setCacheable(true);
criteriaControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
ht.execute(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session sess) throws HibernateException {
assertNotSame(session, sess);
assertTrue(Proxy.isProxyClass(sess.getClass()));
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
// should be ignored
sess.close();
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithCacheQueriesAndCacheRegion() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
query1.setCacheable(true);
query1Control.setReturnValue(query1, 1);
query1.setCacheRegion("myRegion");
query1Control.setReturnValue(query1, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
query2.setCacheable(true);
query2Control.setReturnValue(query2, 1);
query2.setCacheRegion("myRegion");
query2Control.setReturnValue(query2, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setCacheable(true);
criteriaControl.setReturnValue(criteria, 1);
criteria.setCacheRegion("myRegion");
criteriaControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setCacheQueries(true);
ht.setQueryCacheRegion("myRegion");
ht.execute(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session sess) throws HibernateException {
assertNotSame(session, sess);
assertTrue(Proxy.isProxyClass(sess.getClass()));
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
// should be ignored
sess.close();
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithCacheQueriesAndCacheRegionAndNativeSession() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setExposeNativeSession(true);
ht.setCacheQueries(true);
ht.setQueryCacheRegion("myRegion");
ht.execute(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session sess) throws HibernateException {
assertSame(session, sess);
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testExecuteWithFetchSizeAndMaxResults() throws HibernateException {
MockControl query1Control = MockControl.createControl(Query.class);
Query query1 = (Query) query1Control.getMock();
MockControl query2Control = MockControl.createControl(Query.class);
Query query2 = (Query) query2Control.getMock();
MockControl criteriaControl = MockControl.createControl(Criteria.class);
Criteria criteria = (Criteria) criteriaControl.getMock();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.createQuery("some query");
sessionControl.setReturnValue(query1);
query1.setFetchSize(10);
query1Control.setReturnValue(query1, 1);
query1.setMaxResults(20);
query1Control.setReturnValue(query1, 1);
session.getNamedQuery("some query name");
sessionControl.setReturnValue(query2);
query2.setFetchSize(10);
query2Control.setReturnValue(query2, 1);
query2.setMaxResults(20);
query2Control.setReturnValue(query2, 1);
session.createCriteria(TestBean.class);
sessionControl.setReturnValue(criteria, 1);
criteria.setFetchSize(10);
criteriaControl.setReturnValue(criteria, 1);
criteria.setMaxResults(20);
criteriaControl.setReturnValue(criteria, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
query1Control.replay();
query2Control.replay();
criteriaControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
ht.setFetchSize(10);
ht.setMaxResults(20);
ht.execute(new HibernateCallback() {
public Object doInHibernate(org.hibernate.Session sess) throws HibernateException {
sess.createQuery("some query");
sess.getNamedQuery("some query name");
sess.createCriteria(TestBean.class);
return null;
}
});
query1Control.verify();
query2Control.verify();
criteriaControl.verify();
}
public void testGet() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get(TestBean.class, "");
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get(TestBean.class, "");
assertTrue("Correct result", result == tb);
}
public void testGetWithLockMode() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get(TestBean.class, "", LockMode.UPGRADE_NOWAIT);
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get(TestBean.class, "", LockMode.UPGRADE_NOWAIT);
assertTrue("Correct result", result == tb);
}
public void testGetWithEntityName() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get("myEntity", "");
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get("myEntity", "");
assertTrue("Correct result", result == tb);
}
public void testGetWithEntityNameAndLockMode() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.get("myEntity", "", LockMode.UPGRADE_NOWAIT);
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
HibernateTemplate ht = new HibernateTemplate(sf);
Object result = ht.get("myEntity", "", LockMode.UPGRADE_NOWAIT);
assertTrue("Correct result", result == tb);
}
public void testLoad() throws HibernateException {
TestBean tb = new TestBean();
sf.openSession();
sfControl.setReturnValue(session, 1);
session.getSessionFactory();
sessionControl.setReturnValue(sf, 1);
session.load(TestBean.class, "");
sessionControl.setReturnValue(tb, 1);
session.flush();
sessionControl.setVoidCallable(1);
session.close();
sessionControl.setReturnValue(null, 1);
sfControl.replay();
sessionControl.replay();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -