2012-05-04 1 views
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> 

그리고 com.xxx.model과의 관계가있는 다른 테이블 bd_item 있습니다. BDMasterBean 클래스 및 항목 코드를 기본 키로 사용합니다.

그리고 내 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에는 decimal nos가없는 item_codes이 있고 bd_trans에는 decimal nos가 아닌 item이 있습니다. 일치하는 행을 얻기 위해 어떻게이 두 테이블을 조인 할 수 있습니까? "주어진 식별자가있는 행이 없습니다 : com.xxx.model.BDMasterBean # 1189.0"예외가 발생합니다. 어떻게 해결할 수 있을까요?

답변

0

죄송하지만 데이터베이스에서이 문제를 정리하는 것이 좋습니다. ID 열에는 정수 값만 허용해야합니다. 데이터베이스의 기존 값을 변환해야합니다. 올바르게 수행하는 방법을 모르는 경우 다른 질문이됩니다.

그러나 데이터베이스 스키마를 수정하지 못할 수도 있음을 알고 있습니다. 그런 경우 id 값을 수동으로 변환하고 주어진 item_code에 대해 BDMasterBean을 질의해야합니다.