James,

Thank you very much for that - a working example is exactly what I need! :)

Cheers,
Col.

-----Original Message-----
From: James Carman [mailto:jcar...@carmanconsulting.com] 
Sent: 02 March 2010 17:59
To: users@wicket.apache.org
Subject: Re: [newbie] Wicket, Spring, Hibernate and transactions in views.

Introduce AspectJ and spring-aspects into your build.  You can see an
example of it in my wicket-advanced sample project:

http://svn.carmanconsulting.com/public/wicket-advanced/trunk/

Then, AspectJ will weave the transaction support into your
Page/Component classes like you want.  There are limits on what type
of methods can be transactional, though.  I would also recommend the
OpenSessionInView filter (which my example project also uses).

On Tue, Mar 2, 2010 at 11:25 AM, Colin Rogers <coli...@groundsure.com> wrote:
> All,
>
>
>
> I've got a bit of a newbie Wicket question involving Spring, Hibernate
> and transactions.
>
>
>
> The question that I can't seem to find an answer to;
>
>
>
> Can a view be a created/injected/aop'd like a spring bean so that it
> honours @Transactional methods for hibernate?
>
>
>
> An example;
>
>
>
> public class HomePage extends WebPage {
>
>
>
> @SpringBean // this is working fine
>
> private SessionFactory sessionFactory;
>
>
>
> public HomePage(final PageParameters parameters) {
>
>
>
> this.init();
>
>      }
>
>
>
>     �...@transactional // this is not working
>
>      public void init() {
>
>
>
>            Criteria criteria =
> sessionFactory.getCurrentSession().createCriteria(MyEntity.class);
>
>            List<MyEntity> myEntities = criteria.list();
>
>            for( MyEntity myEntity : myEntities ) {
>
>
>
>                  // where subEntities is a lazy collection
>
>                  for( SubEntity subEntity : myEntity.getSubEntities() )
> {
>
>
>
>                        // ...
>
>                  }
>
>            }
>
> }
>
> }
>
>
>
> I've been reading Wicket In Action book, various places on the net and
> of course, emails on the subject on this list and this particular
> tutorial;
>
>
>
> http://wicketinaction.com/2009/06/wicketspringhibernate-configuration/
>
>
>
> And I'm still wondering, is this something that is actually possible? I
> could full understand that it wouldn't be - i.e. that the injector only
> works for Spring injection dependency and not AOP or anything else. So
> you inject your dependencies - and they have transaction support etc.
> But that means I'll be having to force fetching of lazily fetched
> children from outside the views themselves, which is obviously very
> painful. It would be so much easier to have transaction support in the
> view itself and not have to delegate.
>
>
>
> Any help would be greatly appreciated.
>
>
>
> The error message I'm receiving is;
>
>
>
> Caused by: org.hibernate.HibernateException: createCriteria is not valid
> without active transaction
>
>      at
> org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWra
> pper.invoke(ThreadLocalSessionContext.java:338)
>
>      at $Proxy15.createCriteria(Unknown Source)
>
>      at com.tenthart.tacs.testpres.HomePage.init(HomePage.java:39)
>
>      at com.tenthart.tacs.testpres.HomePage.<init>(HomePage.java:28)
>
>      ... 34 more
>
>
>
> Cheers,
>
> Col
>
>
>
>
>
>
>
>
>
> Emap delivers intelligence, inspiration and access through publications, 
> events and data businesses in retail, media, the public sector and the built 
> environment. www.emap.com.
>
> The information in or attached to this email is confidential and may be 
> legally privileged. If you are not the intended recipient of this message any 
> use, disclosure, copying, distribution or any action taken in reliance on it 
> is prohibited and may be unlawful. If you have received this message in 
> error, please notify the sender immediately by return email or by telephone 
> on +44(0)207 728 5000 and delete this message and any copies from your 
> computer and network. The Emap group does not warrant that this email and any 
> attachments are free from viruses and accepts no liability for any loss 
> resulting from infected email transmissions.
>
> The Emap group reserves the right to monitor all e-mail communications 
> through its networks. Please note that any views expressed in this email may 
> be those of the originator and do not necessarily reflect those of the Emap 
> group.
>
> GroundSure Ltd. Company number 03421028 (England and Wales)
> Emap Limited. Company number: 0537204 (England and Wales).
> Registered Office: Greater London House, Hampstead Road, London NW1 7EJ, 
> United Kingdom.
> Details of the operating companies forming part of the Emap group can be 
> found at www.emap.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Emap delivers intelligence, inspiration and access through publications, events 
and data businesses in retail, media, the public sector and the built 
environment. www.emap.com.

The information in or attached to this email is confidential and may be legally 
privileged. If you are not the intended recipient of this message any use, 
disclosure, copying, distribution or any action taken in reliance on it is 
prohibited and may be unlawful. If you have received this message in error, 
please notify the sender immediately by return email or by telephone on 
+44(0)207 728 5000 and delete this message and any copies from your computer 
and network. The Emap group does not warrant that this email and any 
attachments are free from viruses and accepts no liability for any loss 
resulting from infected email transmissions.

The Emap group reserves the right to monitor all e-mail communications through 
its networks. Please note that any views expressed in this email may be those 
of the originator and do not necessarily reflect those of the Emap group.

GroundSure Ltd. Company number 03421028 (England and Wales)
Emap Limited. Company number: 0537204 (England and Wales).
Registered Office: Greater London House, Hampstead Road, London NW1 7EJ, United 
Kingdom.
Details of the operating companies forming part of the Emap group can be found 
at www.emap.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to