在我的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有没有小数nos的item_codes,bd_trans有没有小数和非小数的项目。我如何joi这两个表来获得匹配的行。我得到异常“没有给定标识符的行存在:com.xxx.model.BDMasterBean#1189.0”。怎么解决这个问题?
答案 0 :(得分:0)
我担心,你最好在数据库中清理它。 您必须确保ID列中只允许整数值。 (您还必须转换数据库中的现有值。如果您不知道如何正确执行此操作,那将是另一个问题。)
但是,我知道您可能无法修改数据库架构。 在这种情况下,您必须手动转换id值并查询给定item_code的BDMasterBean。