java - 隐藏集合中的项目

标签 java hibernate hibernate-criteria

我有两个类;

 User {
        private String name;
        private Set<Role> roles;
    }

Role {
    private String name;
    private boolean disabled;
}

在我的应用程序中,用户可以分配多个角色,这些角色存储在角色集中。 角色可能会被禁用并且用户不再可见。

我正在使用 Hibernate Criteria 来查询表;

Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("name", name));

有没有办法查询用户表并使用此查询来“隐藏”他/她的角色集中已禁用的角色,我应该在运行查询后处理此问题吗?

最佳答案

最简单的方法,您可以使用@Where注解。它是 Hibernate 专有注释,我不喜欢专有注释,但它适合您的情况。

对旧链接感到抱歉,但在最新的 Hibernate 手册中,我没有找到对此注释的良好解释,尽管它仍然有效。

关于java - 隐藏集合中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14705401/

相关文章:

grails - 使用 'between'的DetachedCriteria中的错误

java - PostConstruct 未在 junit 中调用

java - Spring MVC 不区分大小写的 URL

java - 将哈希函数委托(delegate)给 hibernate 中未初始化的委托(delegate)会导致更改哈希代码

java - 标准 ORDER BY 日期不起作用?

java - Hibernate 标准优化

java - 如何将本地文件名传递给 ClassPathXmlApplicationContext?

java - 最大 jvm 堆的大小未达到或接近机器上的最大物理内存的原因是什么?

java - Spring 启动和 hibernate 。自动创建日期

java - hibernate 多对多级联不起作用