2012-04-13 8 views
0

Я получаю следующее сообщение об ошибке при попытке выполнить запрос с соединениемHQL РЕГИСТРИРУЙТЕСЬ 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]") 

Я пытаюсь присоединиться к Заказчику и таблицы Страны вместе с общим идентификатором

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> 

И это вопрос, который я пытаюсь вызвать

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

Я новичок в HQL поэтому не уверен, обо всем с ним еще не так ли кто-нибудь знает, как решить эту проблему?

Благодаря

+0

Если начать с Hibernate я рекомендую использовать Java классов с @Entity аннотациями построить свой материал гибернации. Я не знаю, как обрабатываются параметры .xml. - Как выглядит схема db, как вы ее ожидаете? –

+0

Я использую это в своих классах, у меня есть доступ к базе данных, чтению и письму, и все это, просто попытка получить этот рабочий процесс JOIN QUERY является проблемой – newSpringer

+0

, выглядит ли схема DB так, как вы ожидаете? (Hibernate правильно создает схему базы данных?) –

ответ

1

cus.countries Это не cus.Countries. Имена свойств чувствительны к регистру.

+0

пробовал, что и он не работал ... но у меня это объявлено как страны, так что это не имеет значения, не так ли? – newSpringer

+0

в классе Customer, у вас, вероятно, есть что-то вроде getCountries и setCountries. Это означает, что собственность - это страны (в нижнем регистре). Вы должны изменить Customer.hbm.xml, чтобы это отразить. – Pablo

+0

ah ya, что имеет смысл :) – newSpringer

0

попробовать

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

нет все той же ошибки – newSpringer

+0

- это ваше имя переменной 'Страны'? затем используйте 'cus.Countries.id' –

Смежные вопросы