/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.test.annotations.filter.secondarytable; import org.hibernate.Session; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; import org.hibernate.testing.transaction.TransactionUtil; import org.junit.Assert; import org.junit.Test; public class SecondaryTableTest extends BaseCoreFunctionalTestCase { @Override protected Class<?>[] getAnnotatedClasses() { return new Class[] {User.class}; } @Override protected void prepareTest() throws Exception { TransactionUtil.doInHibernate( this::sessionFactory, s -> { insertUser( s, "q@s.com", 21, false, "a1", "b" ); insertUser( s, "r@s.com", 22, false, "a2", "b" ); insertUser( s, "s@s.com", 23, true, "a3", "b" ); insertUser( s, "t@s.com", 24, false, "a4", "b" ); } ); } @Test public void testFilter() { try (Session session = openSession()) { Assert.assertEquals( Long.valueOf( 4 ), session.createQuery( "select count(u) from User u" ).uniqueResult() ); session.enableFilter( "ageFilter" ).setParameter( "age", 24 ); Assert.assertEquals( Long.valueOf( 2 ), session.createQuery( "select count(u) from User u" ).uniqueResult() ); } } private void insertUser( Session session, String emailAddress, int age, boolean lockedOut, String username, String password) { User user = new User(); user.setEmailAddress( emailAddress ); user.setAge( age ); user.setLockedOut( lockedOut ); user.setUsername( username ); user.setPassword( password ); session.persist( user ); } }