我有一个像这样的hibernate实体
@Entity
@Table(name = "type")
public class Type {
@Column(name = "enabled")
private boolean enabled = false;
}
我想创建一个函数,如果Type表中的任何行有enabled = true,则返回该函数。我希望通过使用投影或标准尽可能高效,但我不知道从哪里开始
答案 0 :(得分:1)
执行此操作的最有效方法可能是搜索具有enabled = true
的第一行,并检查它是否存在。
Criteria crit = session.createCriteria(Type.class);
crit.setProjection(Projections.id());
crit.add(Restrictions.eq("enabled", true));
crit.setMaxResults(1);
boolean anyIsEnabled = crit.uniqueResult() != null;
当/遇到enabled = true
的第一个结果时,查询应返回结果,因此它不必像使用count
的解决方案那样遍历整个表格,例如,到。