public class NumberType implements java.io.Serializable { // Fields private Integer id;
private List<CardsNumber> cardsNumbers;}// ------------------------------------------------------------- //
public class CardsNumber implements java.io.Serializable {
private Integer id;
private String number;
}我怎么查询NumberType记录的时候把 CardsNumber 数据也查询出来,也就是说查询NumberType 对象中的cardsNumbers属性有值。
我的HQL语句应该怎么写,等待高手的降临

解决方案 »

  1.   

    这个要改你的hibernate的配置文件的public class NumberType implements java.io.Serializable {    // Fields    private Integer id;
        private List<CardsNumber> cardsNumbers;
    }红色的那个配置改成级联查询 深度你可以写也可以不写 
    建议深度为1
      

  2.   

    我不想在NumberType.cfg.xml文件中配置<set>相关属性.我就想用HQL语句来查.
      

  3.   

    不用级联 你用右连接查询应该也可以的from NumberType nt right join CardsNumber cn 
    where nt.cardsNumbers.id = cn.id 这样应该也是可以查出来的
      

  4.   

    select n.cardsNumbers from NumberType n where n. ... = :...还要,配制文件一定要配制好的!
      

  5.   

    你两张表是什么关系的呢?
    如果可以的话,配置双向广联,你查一张表的时候,他也会把你另外广联的字段给拿出来.【效率问题,服务器压力】
    hql="FROM NumberType"就可以了.NumberType nt= (NumberType)session.createQuery("from NumberType").list().get(0);
    for(Iterator iterator = nt.getCardsNumbers().iterator();iterator.hasNext();){
    CardsNumber cn=(CardsNumber) iterator.next();
    }
      

  6.   

    我记的好像hql语句中可以写new 对象什么来着。
      

  7.   

    一对多的关系,配置文件里修改延迟加载为false就可以得到了!
      

  8.   

    个人意见:
    加载设为false会加大系统开销,一般采用fetch这样提高效率
    from NumberType left join fetch cardsNumbers