У меня есть следующий класс сущностей:
@Entity
@FilterDef (name = "byLastName", parameters = @Parameter (name = "lastName", type="string"))
@Filters ({
@Filter (name = "byLastName", condition = "lastName = :lastName")
})
public class User {
String firstName;
String lastName;
}
В моем DAO я делаю это:
public User findById (Long id)
{
Session s = (Session) em.getDelegate ( );
s.enableFilter ("byLastName").setParameter ("lastName", "smith");
User u = em.find (User.class, id);
return (u);
}
Теперь, если я понимаю это правильно, фильтр должен быть применен, и любой пользователь, которого я пытаюсь получить, должен вернуться как нуль, если lastName не равно "smith". Проблема в том, что фильтры не применяются. Любой пользователь, которого я пытаюсь для извлечения из базы данных, независимо от возвращаемого значения lastName.
Я неправильно понимаю, как работают фильтры? Или я что-то упустил в том, как я это настроил? Обратите внимание, что я не использую hibernate.cfg.xml ; у меня все настроено с помощью JPA и аннотаций.
Буду признателен за любую помощь.
Спасибо.