我有 2张表 A,Bcreate table A
(
Anum int primary key,
Aname,
Ahobby,
Bname not null
)create table B
(
Bnum int primary key,
Bname not null,
Bhobby,
)
//A表的Bname 和 B表的Bname相关联。在hibernate中。如果我准备用Criteria来实现下面功能
1:找出A表Ahobby包含"ball"字段 && A表的Aname=B表的Aname 的 B.Bname   
//////相当于结果是来源于2张不同的表。但必须要用criteria来进行结果集返回,请问如何写。

解决方案 »

  1.   

    不好意,没表达清楚。简而言之就是满足下面2个要求
    1:A.Ahobby 包含"ball" 
    2:A.Ahobby = B.Bhobby 
    返回所有满足条件的A.Ahobby 和 B.Bhobby 但只能用criteria做
      

  2.   

    你要求太高了,criteria查询接口只是针对于单个持久化类进行操作的criteria无法完成此操作
      

  3.   

    用criteria完成挺繁琐的!要进行多步的操作。提供给你一个思路:首先你不可能一次就能查询出A和B这两个对象来,要分别查询然后进行过滤。1。查询A.Ahobby 包含"ball" 条件的A,返回A1(这里已经获取A1.Ahobby)
    2。把A1.Ahobby作为参数条件到B中查询,B.Bhobby = A1.Ahobby,返回B1
    如果B.Bhobby的范围比A1.Ahobby范围小的话,就应该反过来对A1再进行一次查询因为我不清楚你的关联关系,所以第2步有可以不符合你的要求,根据自己情况做。