Hibernate inner join left join

  1. Hibernate inner join left join
  2. CREATE TABLE `catg` (
  3.   `id` int(11) NOT NULL auto_increment,
  4.   `cname` varchar(50default NULL,
  5.   PRIMARY KEY  (`id`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  7. CREATE TABLE `cgoods` (
  8.   `id` int(11) NOT NULL auto_increment,
  9.   `gname` varchar(11default NULL,
  10.   `gdes` varchar(50default NULL,
  11.   `cid` int(11default NULL,
  12.   PRIMARY KEY  (`id`),
  13.   KEY `FK_cid` (`cid`),
  14.   CONSTRAINT `FK_cid` FOREIGN KEY (`cid`) REFERENCES `catg` (`id`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  16. Catg.xml:
  17. package="com.vo">
  18.     <class name="Catg" table="catg">
  19.       "id" column="id" type="int">
  20.       class="native">
  21.       
  22.       "cname" column="cname" type="string">
  23.       
  24.       "goods" cascade="all" inverse="true">
  25.          "cid" not-null="true">
  26.           class="com.vo.Cgoods" />
  27.       
  28.       "count">
  29.         
  30.                 (select count(p.id) from Cgoods p where p.cid=id group by 
  31. p.cid)
  32.             
  33.         
  34.     class>
  35.     "CatgQuery">from Catg c
  36. Cgoods.xml:
  37. package="com.vo">
  38.    <class name="Cgoods" table="cgoods">
  39.       "id" column="id"  type="int">
  40.         class="native">
  41.       
  42.       "gname" column="gname" type="string"/>
  43.       "gdes" column="gdes" type="string"/>
  44.       "catg" column="cid" class="Catg" fetch="select">
  45.       
  46.       
  47.    class>
  48. Test.java:
  49. HibernateUtil.initSessionFactory(new File(Test2.class.getClassLoader().getResource
  50. ("hibernate.cfg.xml").getFile()));
  51.         Session se = HibernateUtil.getSession();
  52.         //HibernateUtil.transaction();
  53.         //内联
  54.         //String hsql="select ca.cname,g.gname from Catg ca,Cgoods g where ca.id=g.catg";
  55.         //左外联  with是选取join中的条件
  56.         //String hsql="select ca.cname,g.gname from Catg ca left join  ca.goods g 
  57. with g.id>1";
  58.         //String hsql="select g.gname,g.gdes from Cgoods g";
  59.         //String hsql="select g from Catg ca inner join  ca.goods g";
  60.         //String hsql="from Catg ca inner join fetch ca.goods g";
  61.         Query query2=se.createQuery(hsql);
  62.         List list= query2.list();
  63.         Iterator iter= list.iterator();
  64.         while(iter.hasNext()){
  65.         Object[] temp=(Object[])iter.next();
  66.         String cname=(String)temp[0];
  67.         String cnt=(String)temp[1];
  68.         System.out.println(cname + ":" + cnt+"");
  69.         }
  70.         HibernateUtil.closeSession();

你可能感兴趣的:(J2EE,join,hibernate,string,object,table,query)