hibernate 关系配置
最近在学习java的资料,使用hibernate有个问题,请教大家。
===1.表结构========
   A:表(1的关系)
   ----Aid----Aname
   B:表(N的关系)
   ----Bid----Aid----Bname---Btype(类型)
===2.建立O/R=======
   A:表
   Set关系(到B表)
   省略(其他setter与getter...)
   B:表
   省略(其他setter与getter...)
===3.查询==========
   1.查询A表记录。简单 Quert.createQuery("form A").List();
   2.查询A表记录及每个记录下B的
   即 select a.aid,count(1) from a left join b on a.aid = b.aid where b.btype=1 group by a.aid
   那么这样应该怎么去配置。(主要是 1.where b.btype=1 2.group by a.aid)    
   请问怎么配置对应sql关系呢??
------解决方案--------------------这样配好像有问题 
 hibernate一对多应该这样配 
 class A { 
  private Integer aId; 
  private String aName; 
  private Set <B>  setB; 
  set..get.. 
 } 
 class B{ 
  private Integer bId; 
  private String bName; 
  private A a; 
  set..get.. 
 }   
 hql:from A得到A的List后 
 for(A a :listA){ 
  a.getSetB();//就得到每条A下的B了 
 }
------解决方案--------------------A表的配置设置好cascade就好了啊,查询A的同时会级联B
------解决方案--------------------这是“单向不使用联接表的多对一关联”,详情查看hibernate手册
大致说一下
首先orm
B类不是用String aId
而是 private A a
然后mapping里,<many-to-one name="a" column="aid" />
select a.id,count(1) from b where btype=1 group by a.id
这样b里就关联了a了
够详细了吧,给分吧
------解决方案--------------------既然建立了关联,那么查询A表的数据时,A表中对应的B的Set肯定是可以获取的,那么LZ的关联查询又有什么意义呢?还有设置set的casecode=“select”查询时级联更新,再需要注意的一个问题就是不要延迟加载。。。