复合查询主要是处理, 具有关联关系的两个实体怎样进行关联查询,比如 Use r 实体对象与 Addres 实体对象具有一对多的关联关系,我们可以如下构造符合查询: Criteria criteria=(); Criteria addcriteria=( “ addresses ”);(1) (( “ address ”,”%tianjin% ”)); List list=(); for(int i=0;i User user=(User)(i); (()+ ”\n”); Set addresses=(); Iterator it=(); while((){ Address address=(Address)(); (()+ ”\n”); }}当执行到了( 1)处时,表明要针对 User 对象的 addresses 属性添加新的查询条件,因此当执行 () 时, Hibernate 会生成类似如下的 SQL 语句: Select * from user inner join address on = where like ‘%shanghai% ’;正如我们所见,我们可以通过向 Criteria 中添加保存关联对象的集合属性( addresses 属性保存与 User 对象相关联的 Address 对象),来构造复合查询, 在数据库一端是通过内连接查询来实现。 Hibernate QBC 查询 QBC 查询: QBC 查询就是通过使用 Hibernate 提供的 Query By Criteria API 来查询对象,这种 API 封装了 SQL 语句的动态拼装,对查询提供了更加面向对象的功能接口。我们看下面的示例程序: Criteria criteria=(); (( “ name ”,” zx”)); (( “ age ”,new Integer(27)); List list=(); 当执行 () 时会生成类似这样的 SQL 语句: Select * from user where name= ’ zx’ and age=27; 所以在这里我们可以看出, Criteria 实际上是一个查询容器,它对查询条件表达式的添加进行了封装,具体的查询条件是通过 add() 方法添加的,而且具体的查询条件的表达式运算是通过 Expression 指定的。 Hibernate 在运行期会根据 Criteria 指定的表达式条件
条件类Criteria的用法 来自淘豆网www.taodocs.com转载请标明出处.