Как сделать запрос на свойство из объединенной таблицы в Hibernate, используя Критерии - PullRequest
0 голосов
/ 16 марта 2010

У меня есть следующее отображение:

<hibernate-mapping package="server.modules.stats.data">
    <class name="User" table="user">
       <id name="id">
            <generator class="native"></generator>
       </id>
       <many-to-one name="address" column="addressId" unique="true" lazy="false" />
    </class>
    <class name="Address" table="address">
       <id name="id">
            <generator class="native"></generator>
       </id>
       <property name="street" />
    </class>
</hibernate-mapping>

Как мне сделать запрос критерия, чтобы выбрать всех пользователей, живущих на какой-то улице?

То есть запрос создания критериев для этого SQL:

Select * from user join address on user.addressId = address.id where address.street='someStreet'

1 Ответ

2 голосов
/ 16 марта 2010
String theStreet = "the_street_name";

DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.createAlias("address", "addrAlias");
dc.add(Restrictions.eq("addrAlias.street", theStreet));
List<User> users = getHibernateTemplate().findByCriteria(dc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...