对于 a 表 和 b 表 关联 ,a表中的order_id 为主键, b表中也有order_id但是 并没有 设为外键,
但在 hibernate 配置文件中 配置 成 一对多的形式a.hbm.xml
<set name="set" table="TB_ORDER_LOG" inverse="true" lazy="false">
<key column="ORDER_ID"/>
<one-to-many class="entity.TbOrderLog"/>
</set> b.hbm.xml
<hibernate-mapping>
<class name="entity.TbOrderLog" table="TB_ORDER_LOG" schema="PAY">
<composite-id >
<key-property name="orderAmount" type="java.lang.Double">
<column name="ORDER_AMOUNT" precision="12" />
</key-property>
<key-property name="orderState" type="java.lang.Long">
<column name="ORDER_STATE" precision="2" scale="0" />
</key-property>
<key-property name="operationTime" type="java.util.Date">
<column name="OPERATION_TIME" length="11" />
</key-property>
<key-property name="operatorIp" type="java.lang.String">
<column name="OPERATOR_IP" length="80" />
</key-property>
<key-property name="note" type="java.lang.String">
<column name="NOTE" length="600" />
</key-property>
</composite-id>
<property name="orderId" column="order_id" type="string" />
<many-to-one name="order" class="entity.TbOrder" insert="false" update="false" cascade="save-update" >
<column name="order_id" />
</many-to-one>
</class>
</hibernate-mapping>想查出一个主键对应的 所有信息和 关联的信息,关联的信息 在 set中 ,
public List test()
{
String hql="from TbOrder o where o.orderId=?";
TbOrder order=(TbOrder)getSession().createQuery(hql).setString(0, "2008102813JY00000545").uniqueResult();
System.out.println(order.getOrderId());
System.out.println(order.getPayAccountId());
System.out.println(order.getSet().size());
return null;
}请问 为什么 getSet().size()为0?
但在 hibernate 配置文件中 配置 成 一对多的形式a.hbm.xml
<set name="set" table="TB_ORDER_LOG" inverse="true" lazy="false">
<key column="ORDER_ID"/>
<one-to-many class="entity.TbOrderLog"/>
</set> b.hbm.xml
<hibernate-mapping>
<class name="entity.TbOrderLog" table="TB_ORDER_LOG" schema="PAY">
<composite-id >
<key-property name="orderAmount" type="java.lang.Double">
<column name="ORDER_AMOUNT" precision="12" />
</key-property>
<key-property name="orderState" type="java.lang.Long">
<column name="ORDER_STATE" precision="2" scale="0" />
</key-property>
<key-property name="operationTime" type="java.util.Date">
<column name="OPERATION_TIME" length="11" />
</key-property>
<key-property name="operatorIp" type="java.lang.String">
<column name="OPERATOR_IP" length="80" />
</key-property>
<key-property name="note" type="java.lang.String">
<column name="NOTE" length="600" />
</key-property>
</composite-id>
<property name="orderId" column="order_id" type="string" />
<many-to-one name="order" class="entity.TbOrder" insert="false" update="false" cascade="save-update" >
<column name="order_id" />
</many-to-one>
</class>
</hibernate-mapping>想查出一个主键对应的 所有信息和 关联的信息,关联的信息 在 set中 ,
public List test()
{
String hql="from TbOrder o where o.orderId=?";
TbOrder order=(TbOrder)getSession().createQuery(hql).setString(0, "2008102813JY00000545").uniqueResult();
System.out.println(order.getOrderId());
System.out.println(order.getPayAccountId());
System.out.println(order.getSet().size());
return null;
}请问 为什么 getSet().size()为0?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货