gpt4 book ai didi

hibernate - 如何让 Hibernate 过滤器在 JPA 中工作?

转载 作者:行者123 更新时间:2023-12-02 07:16:48 24 4
gpt4 key购买 nike

我有以下实体类:


@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);
}

现在,如果我正确理解了这一点,则应应用过滤器,并且如果姓氏不等于“smith”,我尝试检索的任何用户都应返回 null。问题是过滤器似乎没有被应用。我尝试从数据库检索的任何用户,无论姓氏的值如何,都会返回。

我是否误解了过滤器的工作原理?或者我在配置过程中遗漏了一些东西?请注意,我没有使用 hibernate.cfg.xml;一切都是使用 JPA 和注释为我配置的。

任何帮助将不胜感激。

谢谢。

最佳答案

过滤器不会影响通过 ids 进行的任何形式的查找。这也是无法过滤一对一和多对一关联的确切原因。

关于hibernate - 如何让 Hibernate 过滤器在 JPA 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10884332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com