6.5.2. 使用参考实体属性的遍历实体协会
您可以使用引用实体的属性来遍历查询中的实体。这可让您查询一对一和多对一关联。
以下示例演示了您可以在查询中遍历实体的一些方式。
在修订号 1 中,查找所有者年龄为 20 岁或住在地址号 30 的车子,然后按照汽车制作排列结果。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在修订号 1 中,查找所有者期限等于所有者地址号的车辆。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在修订号 1 中,查找所有者为 20 岁或没有所有者的所有车辆。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在修订号 1 中,找到 make 等于"car3"且所有者年龄为 30 或没有所有者的所有车辆。
List<Car> resultList = auditReader.createQuery() .forEntitiesAtRevision( Car.class, 1 ) .traverseRelation( "owner", JoinType.LEFT, "p" ) .up().add( AuditEntity.and( AuditEntity.property( "make" ).eq( "car3" ), AuditEntity.property( "p", "age" ).eq( 30 ) ) ) .getResultList();
List<Car> resultList = auditReader.createQuery() .forEntitiesAtRevision( Car.class, 1 ) .traverseRelation( "owner", JoinType.LEFT, "p" ) .up().add( AuditEntity.and( AuditEntity.property( "make" ).eq( "car3" ), AuditEntity.property( "p", "age" ).eq( 30 ) ) ) .getResultList();
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在修订号 1 中,查找 make 等于"car3"或所有者为 10 或没有所有者的所有车。
List<Car> resultList = auditReader.createQuery() .forEntitiesAtRevision( Car.class, 1 ) .traverseRelation( "owner", JoinType.LEFT, "p" ) .up().add( AuditEntity.or( AuditEntity.property( "make" ).eq( "car3" ), AuditEntity.property( "p", "age" ).eq( 10 ) ) ) .getResultList();
List<Car> resultList = auditReader.createQuery() .forEntitiesAtRevision( Car.class, 1 ) .traverseRelation( "owner", JoinType.LEFT, "p" ) .up().add( AuditEntity.or( AuditEntity.property( "make" ).eq( "car3" ), AuditEntity.property( "p", "age" ).eq( 10 ) ) ) .getResultList();
Copy to Clipboard Copied! Toggle word wrap Toggle overflow