private void setProxyReadOnly(HibernateProxy proxy, boolean readOnly) { if ( proxy.getHibernateLazyInitializer().getSession() != getSession() ) { throw new AssertionFailure( "Attempt to set a proxy to read-only that is associated with a different session" ); } proxy.getHibernateLazyInitializer().setReadOnly( readOnly ); }
narrowedProxy.getHibernateLazyInitializer().setReadOnly( readOnlyOrig );
@Test public void testSetReadOnlyAfterSessionClosedViaLazyInitializer() { DataPoint dpOrig = createDataPoint( CacheMode.IGNORE ); Session s = openSession(); s.setCacheMode(CacheMode.IGNORE); s.beginTransaction(); DataPoint dp = ( DataPoint ) s.load( DataPoint.class, new Long( dpOrig.getId() ) ); assertTrue( dp instanceof HibernateProxy ); assertFalse( Hibernate.isInitialized( dp ) ); checkReadOnly( s, dp, false ); s.getTransaction().commit(); assertTrue( s.contains( dp ) ); s.close(); assertNull( ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().getSession() ); try { ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().setReadOnly( true ); fail( "should have failed because session was detached" ); } catch ( TransientObjectException ex) { // expected assertFalse( ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().isReadOnlySettingAvailable() ); } finally { s = openSession(); s.beginTransaction(); s.delete( dp ); s.getTransaction().commit(); s.close(); } }
assertTrue( dpLI.isUninitialized() ); checkReadOnly( s, dp, false ); dpLI.setReadOnly( true ); checkReadOnly( s, dp, true ); dp.setDescription( "changed" );
checkReadOnly( s, dp, false ); assertFalse( Hibernate.isInitialized( dp ) ); dpLI.setReadOnly( true ); checkReadOnly( s, dp, true ); assertFalse( Hibernate.isInitialized( dp ) ); dpLI.setReadOnly( false ); checkReadOnly( s, dp, false ); assertFalse( Hibernate.isInitialized( dp ) );
assertEquals( "changed", dp.getDescription() ); checkReadOnly( s, dp, false ); dpLI.setReadOnly( true ); checkReadOnly( s, dp, true ); s.flush();
@Test public void testDetachedSetReadOnlyAfterEvictViaLazyInitializer() { DataPoint dpOrig = createDataPoint( CacheMode.IGNORE ); Session s = openSession(); s.setCacheMode(CacheMode.IGNORE); s.beginTransaction(); DataPoint dp = ( DataPoint ) s.load( DataPoint.class, new Long( dpOrig.getId() ) ); assertTrue( dp instanceof HibernateProxy ); assertFalse( Hibernate.isInitialized( dp ) ); checkReadOnly( s, dp, false ); s.evict( dp ); assertFalse( s.contains( dp ) ); assertNull( ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().getSession() ); try { ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().setReadOnly( true ); fail( "should have failed because proxy was detached" ); } catch ( TransientObjectException ex) { // expected assertFalse( ( ( HibernateProxy ) dp ).getHibernateLazyInitializer().isReadOnlySettingAvailable() ); } finally { s.delete( dp ); s.getTransaction().commit(); s.close(); } }
assertTrue( dp instanceof HibernateProxy ); dpLI = ( ( HibernateProxy ) dp ).getHibernateLazyInitializer(); dpLI.setReadOnly( true ); checkReadOnly( s, dp, true ); assertTrue( dpLI.isUninitialized() ); assertTrue( dp instanceof HibernateProxy ); dpLI = ( ( HibernateProxy ) dp ).getHibernateLazyInitializer(); dpLI.setReadOnly( true ); checkReadOnly( s, dp, true ); assertTrue( dpLI.isUninitialized() ); dpLI.setReadOnly( false ); checkReadOnly( s, dp, false ); assertTrue( dpLI.isUninitialized() );
@Override public void setReadOnly(boolean readOnly) { this.lazyInitializer.setReadOnly(readOnly); }
private void setProxyReadOnly(HibernateProxy proxy, boolean readOnly) { if ( proxy.getHibernateLazyInitializer().getSession() != getSession() ) { throw new AssertionFailure( "Attempt to set a proxy to read-only that is associated with a different session" ); } proxy.getHibernateLazyInitializer().setReadOnly( readOnly ); }
private void setProxyReadOnly(HibernateProxy proxy, boolean readOnly) { if ( proxy.getHibernateLazyInitializer().getSession() != getSession() ) { throw new AssertionFailure( "Attempt to set a proxy to read-only that is associated with a different session" ); } proxy.getHibernateLazyInitializer().setReadOnly( readOnly ); }
private void setProxyReadOnly(HibernateProxy proxy, boolean readOnly) { if ( proxy.getHibernateLazyInitializer().getSession() != getSession() ) { throw new AssertionFailure( "Attempt to set a proxy to read-only that is associated with a different session" ); } proxy.getHibernateLazyInitializer().setReadOnly( readOnly ); }
( ( HibernateProxy ) proxy ).getHibernateLazyInitializer().setReadOnly( readOnlyOrig );
( ( HibernateProxy ) proxy ).getHibernateLazyInitializer().setReadOnly( readOnlyOrig );
narrowedProxy.getHibernateLazyInitializer().setReadOnly( readOnlyOrig );