Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
Main
TextFormattingRules
WhatIsWiki




JSPWiki v2.2.33

[RSS]


Hide Menu

SandBox


Difference between version 318 and version 299:

At line 5 removed 1 line.
At line 8 changed 8 lines.
SqlRowSet rset = getJdbcTemplate().queryForRowSet(
"select id, name from mytest where id > ? and name < ?",
new Object[] {new Long(1), "Z"});
int i = 0;
while (rset.next()) {
i++;
System.out.println("Row" + i + " " + rset.getString(2));
}
import javax.naming.Context;
import javax.naming.InitialContext;
At line 17 changed 1 line.
}]
import junit.framework.TestCase;
At line 12 added 5 lines.
import org.mockejb.MockContainer;
import org.mockejb.SessionBeanDescriptor;
import org.mockejb.jndi.MockContextFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
At line 20 changed 1 line.
;:''The DAO layer has the Hibernate sessionFactory injected (made available) to it through Spring and this entry in applicationContext-hibernate.xml:
/**
* Parent TestCase class for testing EJBs using MockEJB
*
* @author mraible
*
*/
public abstract class MockEJBTestCase extends TestCase {
At line 22 changed 3 lines.
{{{
<property name="sessionFactory"><ref local="sessionFactory"/></property>
}}}
/**
* This method sets up a MockContainer and allows you to deploy an EJB to
* it. Override <code>onSetUp()</code> to add custom set-up behavior.
*
* @see #onSetUp()
*/
protected final void setUp() throws Exception {
MockContextFactory.setAsInitial();
At line 26 changed 1 line.
So to access the Hibernate session from within your DAO, place a method like this in your DAO:
Context ctx = new InitialContext();
ApplicationContext appCtx =
new ClassPathXmlApplicationContext(getConfigLocations());
ctx.bind("java:comp/env/jdbc/appDS", appCtx.getBean("dataSource"));
MockContainer mc = new MockContainer(ctx);
SessionBeanDescriptor dd = getDeploymentDescriptor();
mc.deploy(dd);
onSetUp();
}
At line 28 changed 1 line.
{{{
protected String[] getConfigLocations() {
return new String[] { "classpath:/applicationContext.xml" };
}
At line 30 changed 1 line.
Session session = SessionFactoryUtils.getSession(getSessionFactory(), false);
protected void onSetUp() throws Exception {}
At line 32 changed 1 line.
}}}
protected abstract SessionBeanDescriptor getDeploymentDescriptor();
}
At line 34 changed 2 lines.
* How do I get hold of the Hibernate session in my View code?
;:''To get hold of the Session in the view code, you need to lookup the SessionFactory defined in the applicationContext-hibernate.xml:
}]
At line 37 changed 7 lines.
{{{
private void createApplicationContext() {
if (ctx == null) {
ctx =
WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
}
}
[CreateDAO_zh]
[CreateDAO_sp]
At line 45 changed 14 lines.
public net.sf.hibernate.Session getCurrentHibernateSession() {
createApplicationContext();
SessionFactory sessionFactory = (SessionFactory)ctx.getBean("sessionFactory");
SessionHolder sessionHolder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory);
net.sf.hibernate.Session currentSession = null;
Transaction currentTransaction = null;
if (sessionHolder!=null) {
currentSession = sessionHolder.getSession();
currentTransaction = sessionHolder.getTransaction();
}
return currentSession;
}
[CreateManager_es]
At line 60 changed 1 line.
}}}
[QuickStart Guide_es]
At line 65 added 1 line.
[SpringControllerUnitTest]
At line 64 changed 2 lines.
[δΈ­ζ–‡ζŒ‡ε—|Articles_zh]

Back to SandBox, or to the Page History.