@Test public void testDynamicFetch() { Session s = openSession(); s.beginTransaction(); Date now = new Date(); User me = new User( "me" ); User you = new User( "you" ); Resource yourClock = new Resource( "clock", you ); Task task = new Task( me, "clean", yourClock, now ); // :) s.save( me ); s.save( you ); s.save( yourClock ); s.save( task ); s.getTransaction().commit(); s.close(); StatelessSession ss = sessionFactory().openStatelessSession(); ss.beginTransaction(); Task taskRef = ( Task ) ss.createQuery( "from Task t join fetch t.resource join fetch t.user" ).uniqueResult(); assertTrue( taskRef != null ); assertTrue( Hibernate.isInitialized( taskRef ) ); assertTrue( Hibernate.isInitialized( taskRef.getUser() ) ); assertTrue( Hibernate.isInitialized( taskRef.getResource() ) ); assertFalse( Hibernate.isInitialized( taskRef.getResource().getOwner() ) ); ss.getTransaction().commit(); ss.close(); cleanup(); }
statelessSession = sessionFactory.openStatelessSession(); txn = statelessSession.getTransaction(); txn.begin();
@Override public Transaction getTransaction() { return this.raw.getTransaction(); }
session.getTransaction().commit(); session.close();