выберите в Nhibernate HQL - PullRequest
       6

выберите в Nhibernate HQL

1 голос
/ 02 апреля 2011

У меня есть какое-то отображение:

<class entity-name="Person" table="table1">
<id column="Id" type="long" name="Id"/>
<set name="Address">
<key column="Person_id"/>
<one-to-many class="Address"/>
</set>
<property column="Id" name="Id" type="long"/>
<property column="Last_Name" name="LastName" type="string"/>
<property column="First_Name" name="FirstName" type="string"/>
<property column="Education" name="Education" type="string"/>   
</class>

<class entity-name="Address" table="table2">
<id column="Id" type="long" name="Id"/>
<property column="Id" name="Id" type="long"/>
<property column="City" name="City" type="long"/>
<property column="Street" name="Street" type="string"/>
<property column="number" name="number" type="string"/>
</class>

Это мой HQL-запрос hbm = "от лица p, получить соединение p. Адрес WHERE p.id in (: ids)"

, но сейчасЯ получаю select * из обеих таблиц (Address и Person) Мне нужен HQL, который сохраняет LastName, FirstName человека и набор адресов, который содержит City, Street

Я хочу добавить условия в поля Address ??

Ответы [ 2 ]

0 голосов
/ 02 апреля 2011

А как насчет этого запроса?

select p.FirstName, p.LastName, a.City, a.Street from Person p inner join p.Addresses a WHERE p.Id in (:id) and a.City=:city

Коллекция результатов содержит массивы объектов:

0 голосов
/ 02 апреля 2011

Добавить Выберите p, чтобы вернуть только персона. Добавьте псевдоним для Address, чтобы вы могли использовать его в предложении where (условиях).

select p from person p join fetch p.Address ad WHERE p.id in (:ids) and a.City = :city
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...