遇到一hibernate的bug,让人进退两,各位帮忙想想招


hibernate 版本:hibernate-3.2.0.cr5
项目快结束了,遇到这个问题,郁闷啊,如果的确是bug,谁能帮返馈到hibernage,不胜感激(本人e文不太好)
映射文件1:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
  <class entity-name="QuData02" table="data_02">
    <composite-id>
      <key-property name="id" column="ID" type="string"/>
      <key-property name="z0001" column="Z0001" type="string"/>
    </composite-id>
    <many-to-one name="idcode" entity-name="QuData01" column="ID" insert="false" update="false"/>
    <!--注意 -->
    <many-to-one name="z0002code" column="Z0002" not-found="ignore" entity-name="QuCodeRegion"/>

    <many-to-one name="z0003code" column="Z0003" not-found="ignore" entity-name="QuCodeRegionDept"/>
    <many-to-one name="z0004code" column="Z0004" not-found="ignore" lazy="false" entity-name="QuCodeItem1"/>
    <property name="z0005" column="Z0005" type="string" not-null="false"/>
    <property name="z0006" column="Z0006" type="string" not-null="false"/>
    <many-to-one name="a0001code" column="A0001" not-found="ignore" lazy="false" entity-name="QuCodeItem1"/>
    <many-to-one name="a0002code" column="A0002" not-found="ignore" lazy="false" entity-name="QuCodeItem2"/>
    <many-to-one name="a0003code" column="A0003" not-found="ignore" lazy="false" entity-name="QuCodeItem3"/>
    <property name="a0004" column="A0004" type="big_decimal" not-null="false"/>
    <property name="a0005" column="A0005" type="string" not-null="false"/>
    <many-to-one name="a0006code" column="A0006" not-found="ignore" lazy="false" entity-name="QuCodeSubject"/>
    <many-to-one name="a0007code" column="A0007" not-found="ignore" lazy="false" entity-name="QuCodeItem1"/>
    <property name="a0008" column="A0008" type="big_decimal" not-null="false"/>
    <property name="a0009" column="A0009" type="string" not-null="false"/>
    <property name="Flag" column="FLAG" type="string" not-null="false" length="10"/>
  </class>
</hibernate-mapping>

映射文件2:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

  <class name="cn.com.cfit.gztfjg.querystat.code.QuCodeItem1" table="CODE_REGION"  entity-name="QuCodeRegion">
    <id name="id" column="ID" type="string">
      <generator class="assigned"/>
    </id>
    <property name="codesortid"   column="CODESORTID"  type="string" />
    <!--注意 -->
    <property name="codeid"      column="CODEID1"     type="string" />    

<property name="codename"     column="CODENAME"    type="string"/>
    <property name="codedetail"   column="CODEDETAIL"  type="string"/>
    <property name="codelevel"    column="CODELEVEL"   type="int"/>
    <property name="flag"         column="FLAG"        type="string"/>
   </class>
</hibernate-mapping>

查询使用的hql:
Select
 C02.z0005,
 C02.a0004,
 C02.a0007code.codename,
 C02.z0002code.codename,
 C02.z0006
  from QuData02 C02
   Where (C02.z0002code.codeid like '41%' or C02.z0005 like '%王%') and C02.z0006 = '2006-01' order by C02.a0004 Desc


输出的sql语句:
select
 qudata02x0_.Z0005 as col_0_0_,
  qudata02x0_.A0004 as col_1_0_,
   qucodeitem2_.CODENAME as col_2_0_,
    qucoderegi1_.CODENAME as col_3_0_,
     qudata02x0_.Z0006 as col_4_0_
      from
       data_02 qudata02x0_,
        CODE_REGION qucoderegi1_,
         CODE_ITEM1 qucodeitem2_ 
         where
          qudata02x0_.A0007=qucodeitem2_.ID
           and
            (((qucoderegi1_.CODEID1 like '41%'  and qudata02x0_.Z0002=qucoderegi1_.ID)or(qudata02x0_.Z0005 like '%王%' ))and(qudata02x0_.Z0006='2006-01' ))
             order by  qudata02x0_.A0004 Desc

希望的输出结果:
select
 qudata02x0_.Z0005 as col_0_0_,
  qudata02x0_.A0004 as col_1_0_,
   qucodeitem2_.CODENAME as col_2_0_,
    qucoderegi1_.CODENAME as col_3_0_,
     qudata02x0_.Z0006 as col_4_0_
      from
       data_02 qudata02x0_,
        CODE_REGION qucoderegi1_,
         CODE_ITEM1 qucodeitem2_ 
         where
         qudata02x0_.Z0002=qucoderegi1_.ID and 
          qudata02x0_.A0007=qucodeitem2_.ID
           and
            (((qucoderegi1_.CODEID1 like '41%')or(qudata02x0_.Z0005 like '%王%' ))and(qudata02x0_.Z0006='2006-01' ))
             order by  qudata02x0_.A0004 Desc  

注意输出结果中 qudata02x0_.Z0002=qucoderegi1_.ID的位置的不同.

你可能感兴趣的:(sql,Hibernate,.net,xml)