浏览 938 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2006-10-17
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的位置的不同. 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-10-17
变换成下面的形式的Hql
select * from A a1,AItem item1,AItem2 item2 where a1.id = item1.aId and a1.id = item2.aId and item1.name = 'xx' |
|
| 返回顶楼 | |
|
最后更新时间:2006-10-17
nihongye 写道 变换成下面的形式的Hql
谢谢!
select * from A a1,AItem item1,AItem2 item2 where a1.id = item1.aId and a1.id = item2.aId and item1.name = 'xx' 这样的确可以查出正确的结果,但我还是觉得这应该是hibernate的一个bug |
|
| 返回顶楼 | |




