> @Inject is for pages. Make your DAO a Tapestry service and inject the > session to it via its constructor. > > Kalle
I guess not... Since the DAO is a service, you can either @Inject fields, pass thru construtuctor call or build them. _______________________ Everton Agner Ramos 2010/11/10 Anas Mughal <anasmug...@yahoo.com> > Yes, that worked. I wish to thank everyone for their help! > > Tapestry is great! > Coming from the Spring world, I do not miss those verbose Spring > configuration files! > > --Anas Mughal > http://anas-mughal.com > > > --- On Wed, 11/10/10, Rich M <rich...@moremagic.com> wrote: > > From: Rich M <rich...@moremagic.com> > Subject: Re: session is NULL > To: "Tapestry users" <users@tapestry.apache.org> > Date: Wednesday, November 10, 2010, 10:34 AM > > On 11/10/2010 03:42 AM, Anas Mughal wrote: > > I have setup my DAO as a Tapestry service in the AppModule as: > > public class AppModule > > { > > public static void bind(ServiceBinder binder) > > { > > binder.bind(BranchDAO.class, BranchHibernateDAO.class); > > > > } > > } > > Then, I try to inject the session as follows: > > public class BranchHibernateDAO implements BranchDAO { > > > > @Inject > > private Session session; > > > > > > @SuppressWarnings("unchecked") > > public Object find( Class c , BigDecimal id) > > { > > return session.get(c, id); > > } > > > > } > > > > I still get a NULL session. > > > > > > > > > > > > > > > > Following the suggestion by Kalle, I injected the session to a page. > Then, passed the session to my DAO in the contructor. That worked! However, > I would rather keep the code cleaner by injecting the session directly into > the DAO. > > > To use the DAO, you will want the following setup. > > public class BranchHibernateDAO implements BranchDAO { > > private Session session; > > public BranchHibernateDAO(Session session){ > > this.session = session; > > } > > ... > > } > > > then in your page class: > > @Inject > > private BranchHibernateDAO bhdao; > > > You do not need to initialize the BranchHibernateDAO yourself. Tapestry-IoC > will initialize the BranchHibernateDAO lazily behind the scenes the first > time you access it in the web application. In this case, that would be when > you navigate to the page relating to your page class, where the DAO is > injected. > > The convention for services, is that when they are setup in the bind method > of the AppModule (or whatever your module is called), Tapestry will "inject" > the appropriate objects to its constructor when it initializes the service. > > This convention will keep your page classes cleaner. > > Any suggestion would be greatly appreciated. > > --- On Wed, 11/10/10, Kalle Korhonen<kalle.o.korho...@gmail.com> wrote: > > > > > > From: Kalle Korhonen<kalle.o.korho...@gmail.com> > > Subject: Re: session is NULL > > To: "Tapestry users"<users@tapestry.apache.org> > > Date: Wednesday, November 10, 2010, 1:48 AM > > > > > > @Inject is for pages. Make your DAO a Tapestry service and inject the > > session to it via its constructor. > > > > Kalle > > > > > > On Tue, Nov 9, 2010 at 9:52 PM, Anas Mughal<anasmug...@yahoo.com> > wrote: > > > >> I have setup my Tapestry project using the Maven archetype. Then, I > setup my hibernate.cfg.xml file with references to my hibernate mapping > files. (I am not using annotations for hibernate.) > >> > >> Now, I have setup a simple DAO object to try to retrieve an object from > the database: > >> > >> public class BranchDAO { > >> > >> @Inject > >> private Session session; > >> > >> @SuppressWarnings("unchecked") > >> public Object find( Class c , BigDecimal id) > >> { > >> return session.get(c, id); // session is NULL here > >> } > >> } > >> > >> > >> I get a NULL pointer exception because my session does not seem to be > >> initialized. > >> > >> Searching online, I came accross: > >> http://wiki.apache.org/tapestry/SessionPagePersistence > >> > >> I have not setup any hivemind configuration or any of the suggested > classes on that wiki page. Please advise me what do I need to be able to > fetch objects using Tapestry-Hibernate. I don't know where to place the > hivemind configuration file -- if I need it. > >> > >> I am new to Tapestry. Please bear with me. > >> > >> Thank you for your kind assistance. > >> --Anas Mughal > >> http://anas-mughal.com > >> > >> > >> > >> > >> > >> > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > >