@Test public void testScrollCriteria() { Session session = openSession(); Transaction t = session.beginTransaction(); Course course = new Course(); course.setCourseCode("HIB"); course.setDescription("Hibernate Training"); session.persist(course); session.flush(); session.clear(); ScrollableResults sr = session.createCriteria(Course.class).setReadOnly( true ).scroll(); assertTrue( sr.next() ); course = (Course) sr.get(0); assertNotNull(course); assertTrue( session.isReadOnly( course ) ); sr.close(); session.delete(course); t.commit(); session.close(); }
.setReadOnly( true ) .list();
.add( Restrictions.isNotEmpty("s.enrolments") ) .setCacheable(true) .setReadOnly( true ) .list(); .createAlias("student", "s") .createAlias("course", "c") .setReadOnly( true ) .add( Restrictions.isNotEmpty("s.enrolments") ) .setCacheable(true) .setReadOnly( true ) .list(); .setReadOnly( true ) .createAlias("student", "s") .createAlias("course", "c")
coursePreferred = ( Course ) s.get( Course.class, coursePreferred.getCourseCode() ); assertFalse( s.isReadOnly( coursePreferred ) ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( true ); assertTrue( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() );
assertFalse( s.isReadOnly( coursePreferred ) ); s.setReadOnly( coursePreferred, true ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( false ); assertTrue( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() );
Hibernate.initialize( coursePreferred ); checkProxyReadOnly( s, coursePreferred, false ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( true ); assertTrue( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() );
s.setReadOnly( coursePreferred, true ); checkProxyReadOnly( s, coursePreferred, true ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( false ); assertTrue( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() );
assertFalse( Hibernate.isInitialized( coursePreferred ) ); checkProxyReadOnly( s, coursePreferred, false ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( true ); assertTrue( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() );
s.setReadOnly( coursePreferred, true ); checkProxyReadOnly( s, coursePreferred, true ); Criteria criteria = s.createCriteria( Student.class ).setReadOnly( false ); assertTrue( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() );
Criteria criteria = s.createCriteria( Student.class ).setReadOnly( true ); assertFalse( s.isDefaultReadOnly() ); assertTrue( criteria.isReadOnlyInitialized() );
assertFalse( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() ); criteria.setReadOnly( false ); assertTrue( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() );
assertFalse( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() ); criteria.setReadOnly( false ); assertTrue( criteria.isReadOnlyInitialized() ); assertFalse( criteria.isReadOnly() );
assertFalse( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() ); criteria.setReadOnly( true ); assertTrue( criteria.isReadOnlyInitialized() ); assertTrue( criteria.isReadOnly() );
gavin = ( Student ) s.createCriteria(Student.class) .add( Subqueries.exists(dc) ) .setReadOnly( true ) .uniqueResult(); assertFalse( s.isDefaultReadOnly() ); enrolment = ( Enrolment ) s.createCriteria(Enrolment.class, "e") .add( Subqueries.eq("Gavin King", dc2) ) .setReadOnly( true ) .uniqueResult(); assertTrue( s.isReadOnly( enrolment ) ); enrolment = ( Enrolment ) s.createCriteria(Enrolment.class, "e") .add( Subqueries.eq("Gavin King", dc3) ) .setReadOnly( true ) .uniqueResult(); assertTrue( s.isReadOnly( enrolment ) );
/** * Whether to check for changes on the objects loaded * @param readOnly True to disable dirty checking */ public BuildableCriteria readOnly(boolean readOnly) { criteria.setReadOnly(readOnly); return this; }
@Override public Criteria setReadOnly(boolean readOnly) { backingCriteria.setReadOnly(readOnly); return this; }
private void setReadOnly(final Criteria criteria) { criteria.setReadOnly(Boolean.TRUE); }
/** * Creates {@link Stream} with given criteria Result * * @param crit * - given Critera crit. crit is marked as ReadOnly with * {@link Query#setReadOnly(true)} * @return new {@link Stream} with given ResultSet */ public <T> Stream<T> streamReadOnly(Criteria crit) { return stream(crit.setReadOnly(true)); }
Criteria criteria = getCurrentSession().createCriteria(LargeVolumeEntity.class); criteria.add(Restrictions.eq("archived", Boolean.FALSE)); criteria.setReadOnly(true); criteria.setCacheable(false); List<E> result = new IterableListScrollableResults<E>(getCurrentSession(), criteria.scroll(ScrollMode.FORWARD_ONLY)); for(E entity : result) { dumpEntity(file, entity); }
Criteria criteria = getCurrentSession().createCriteria(LargeVolumeEntity.class); criteria.add(Restrictions.eq("archived", Boolean.FALSE)); criteria.setReadOnly(true); criteria.setCacheable(false); List<E> result = new IterableListScrollableResults<E>(getCurrentSession(), criteria.scroll(ScrollMode.FORWARD_ONLY)); for(E entity : result) { dumpEntity(file, entity); }