0

在我的 xx.hbm.xml 文件中,我写了这个:

<class name="com.xxx.model.PosDataBDEntryBean" table="BD_Trans">
    <id name="id" column="id">
        <generator class="native"></generator>
    </id>
    <many-to-one name="itemCode" class="com.xxx.model.BDMasterBean" fetch="join" lazy="false">
        <column name="item_code"/>
    </many-to-one>
    <property name="transDate" column="trans_date" />
     </class>

我还有另一个表 bd_item 与 com.xxx.model.BDMasterBean 类和 itemcode 作为主键有关系。

在我的 DAO 课程中,我编写了以下代码行:

Criteria criteria = session.createCriteria(PosDataBDEntryBean.class);
         criteria.add(Restrictions.eq("transDate",cDate)).add(Restrictions.eq("location", "BD"));
        posBDEntryGridList = criteria.list();

我有两个表,bd_item 和 bd_trans。bd _item 的 item_codes 没有小数,bd_trans 的项目有小数和非小数。我怎样才能加入这两个表来获得匹配的行。我收到异常“不存在具有给定标识符的行:com.xxx.model.BDMasterBean#1189.0”。如何解决这个问题?

4

1 回答 1

0

恐怕,你最好在数据库中清理一下。您必须确保 ID 列中只允许整数值。(您还必须转换数据库中的现有值。如果您不知道如何正确执行此操作,那将是另一个问题)。

但是,我了解您可能无法修改数据库架构。在这种情况下,您必须手动转换 id 值并查询给定 item_code 的 BDMasterBean。

于 2012-05-04T12:21:43.467 回答