在Hibernate的实体方法中使用命名查询

时间:2018-10-16 10:56:16

标签: java hibernate

我有一个实体,该实体的@ManyToMany集合标记为惰性。当我在JSP中列出这些实体时,我在每个实体中调用一个方法来决定是否应该显示按钮,该方法是为了计算该集合中元素的数量而开发的,因此,如果元素的数量太多因为Hibernate会使用其所有数据加载整个集合,所以花了很长时间来显示JSP。

我想知道是否存在一种从实体中的该方法调用NamedQuery的方法,例如:

@NamedNativeQuery(
    name="showButton",
    query="SELECT count(distinct(id)) FROM USER where GROUP_ID = :groupId")
@Entity 
class Group {
    ...

    @ManyToMany(mappedBy = "groups", cascade = { CascadeType.PERSIST, CascadeType.MERGE })
        private Set<User> users = new HashSet<User>();
    }

    ...
    public boolean showButton() {
        // Can I call the named query here??
    }
}

1 个答案:

答案 0 :(得分:0)

不能使用@NamedQuery,但可以使用@Formula计算属性。