我有一个实体,该实体的@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??
}
}
答案 0 :(得分:0)
不能使用@NamedQuery,但可以使用@Formula计算属性。