此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【zhouzongxi】截止到2008-07-28 22:40:45的历史汇总数据(不包括此帖):
发帖的总数量:18                       发帖的总分数:225                      每贴平均分数:12                       
回帖的总数量:198                      得分贴总数量:71                       回帖的得分率:35%                      
结贴的总数量:18                       结贴的总分数:225                      
无满意结贴数:3                        无满意结贴分:35                       
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:16.67 %               无满意结分率:15.56 %                  
敬礼!

解决方案 »

  1.   

    在Mysql中 :用这个语句能得到我要的结果:select * from customers where cid in (select cid from orders);
      

  2.   

    这两个cid一点关系也没有怎么查呢?
    起码要给订单表加个外键应用自客户表的主键吧
      

  3.   

    数据库中有主外键关系,在映射中也有。
    customers.hbm.xml<hibernate-mapping>
        <class name="com.pojos.Customers" table="customers" catalog="hbn">
            <id name="cid" type="java.lang.Integer">
                <column name="cid" />
                <generator class="identity" />
            </id>
            <property name="cname" type="java.lang.String">
                <column name="cname" length="20" />
            </property>
            <property name="cpassword" type="java.lang.String">
                <column name="cpassword" length="20" />
            </property>
            <set name="orderses" inverse="true">
                <key>
                    <column name="cid" />
                </key>
                <one-to-many class="com.pojos.Orders" />
            </set>
        </class>
    </hibernate-mapping>
    Orders.hbm.xml<hibernate-mapping>
        <class name="com.pojos.Orders" table="orders" catalog="hbn">
            <id name="oid" type="java.lang.Integer">
                <column name="oid" />
                <generator class="identity" />
            </id>
            <many-to-one name="customers" class="com.pojos.Customers" fetch="select">
                <column name="cid" />
            </many-to-one>
            <property name="odate" type="java.util.Date">
                <column name="odate" length="10" />
            </property>
        </class>
    </hibernate-mapping>就是hql这里不会写。。
      

  4.   

    把Query q = session.createQuery(" from Customers c where c.cid in (select o.cid from Orders o) ");
    改为
    Query q = session.createQuery("select from Customers c where c.cid in (select o.cid from Orders o) ");
      

  5.   


    Query q = session
    .createQuery("  from Customers c where c.cid in (select c.cid from c.orderses) ");

      

  6.   

    如果直接写SQL的话,还用hibernate干嘛,直接用jdbc得了。
    我偶尔看到一个文章啊:不知道楼主搞定了没。
    http://fableking.javaeye.com/blog/360868 还有些意思啊。