我有一个非常独特的查询,这让我在 Hibernate 中感到有些悲伤。我有以下实体:
class Batch {
private Set exports;
private boolean locked;
...
}
class Export {
private bool success;
...
}
我正在尝试查询已锁定且没有导出的批次,或者仅在他们所做的所有导出在成功方面都是错误的情况下。我能够创建标准以仅获取至少包含错误的导出的批次,但似乎无法找到文档来检查连接的所有实体是否为错误。此外,我还想要那些以前没有 Exports 并发现我可以使用setProjection( Projections.rowCount() )
的,但这需要运行两次查询。我到目前为止是这样的:
Criteria query = session.createCriteria( Batch.class );
query.add( Restrictions.eq( "locked", true ) );
query.createCriteria( "exports" ).add( Restrictions.ne( "success", true ) );
List results = query.list()
我对 Hibernate 还很陌生,并不完全了解可以做什么和不可以做什么。我希望这使用标准对象来完成,但不反对使用 HQL。如果这不能用那些可以休眠处理任何 SQL 语句来完成,或者是否也有限制?