我们正在使用Hibernate进行对象/关系映射。这在加载整个实体时工作正常。但是,我经常面临的问题是,我只想根据特定条件检查单个属性或COUNT()
表条目。为了提高性能,我在这些情况下使用Native SQL,而不是从数据库加载多个对象并在Java中检查它们的属性。但是,使用简单的SQL查询容易出错,我觉得它违反了ORM的想法。
所以我想知道,是否有任何ORM方法可以有效地检查Hibernate的单个属性?
示例:假设我们有两个实体bean Order
和OrderPosition
。如果订单已部分交付(即COUNT(OrderPositions WHERE isDelivered = true) > 0
),我们要检查。
@Entity
public class Order {
private long id;
private List<OrderPosition> orderPositions;
// ...
}
@Entity
public class OrderPosition {
private isDelivered = false;
// ...
}
(为了便于阅读,简化了代码。)