0

結合クエリを実行しようとすると、次のエラーが発生します

("could not resolve property: Countries of: com.fexco.helloworld.web.model.Customer [select cus from com.fexco.helloworld.web.model.Customer as cus join cus.Countries as cou where cus.id = cou.id]")

Customer テーブルと Country テーブルを共通の ID で結合しようとしています

Customer.hbm.xml

<?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 package="com.ccg.db.test">
<class name="Customer" table="Customer">
    <id name="id" column="id" type="bigiint">
        <generator class="native"/>
    </id>
    <property name="firstname" type="string" >
       <column name="firstname" /> 
    </property>
    <property name="surname" type="string" >
        <column name="surname" /> 
    </property>
    <property name="address1" type="string" >
        <column name="address1" /> 
    </property>
    <property name="address2" type="string" >
        <column name="address2" /> 
    </property>
    <many-to-one name="Countries" column="id" class="Countries" /> 
</class>
</hibernate-mapping>

国.hbm.xml

<?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 package="com.ccg.db.test">
<!-- CLASS NAME MIGHT BE CUSTOMER -->
<class name="Countries" table="Countries">
    <id name="id" column="id">
        <generator class="native" />
    </id>
    <property name="country" column="country" />
</class>
</hibernate-mapping>

そして、これは私が呼び出そうとしているクエリです

String sql_query = "select cus from Customer as cus join cus.Countries as cou where cus.id = cou.id";

私はHQLを初めて使用するので、まだすべてについてわからないので、これを解決する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

1

cus.Countries ではなく、cus.countries です。プロパティ名は大文字と小文字が区別されます。

于 2012-04-13T11:27:38.330 に答える
0

試す

select cus from Customer cus  where cus.id = cus.countries.id
于 2012-04-13T11:27:43.400 に答える