newSpringer
newSpringer

Reputation: 1028

HQL JOIN QUERY: could not resolve property:

I am getting the following error when I try to execute a join query

("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]")

I am trying to join the Customer and Countries tables together by a common 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>

Countries.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>

And this is the query that i am trying to call

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

I am new to HQL so not sure about everything with it yet so does anybody know how to solve this?

Thanks

Upvotes: 0

Views: 5669

Answers (2)

Nirmal- thInk beYond
Nirmal- thInk beYond

Reputation: 12054

try

select cus from Customer cus  where cus.id = cus.countries.id

Upvotes: 0

Pablo
Pablo

Reputation: 3673

It's cus.countries, not cus.Countries. Property names are case sensitive.

Upvotes: 1

Related Questions