package org.hibernate.test.annotations.filter.secondarytable; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; 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 { openSession(); insertUser("q@s.com", 21, false, "a1", "b"); insertUser("r@s.com", 22, false, "a2", "b"); insertUser("s@s.com", 23, true, "a3", "b"); insertUser("t@s.com", 24, false, "a4", "b"); session.flush(); } @Test public void testFilter(){ 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(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); } }