Запрос гибернации для объекта, основанный на том, является ли свойство связанной сущности нулевым? - PullRequest
0 голосов
/ 22 мая 2009

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

<class name="Customer">
  <!-- actually one-to-one for all intents and purposes-->
  <many-to-one name="specialProperty" class="SpecialProperty" cascade="all" not-found="ignore" insert="false" update="false" column="id" unique="true"/>
</class

<class name="SpecialProperty" lazy="false">
        <id name="id" column="customer_id">
            <generator class="foreign">
                <param name="property">customer</param>
            </generator>
        <one-to-one name="customer" class="Customer" constrained="true"></one-to-one>
</class>

При использовании этого сопоставления customer.specialProperty имеет значение null, если в таблице special_properties нет записи для конкретного клиента. (при использовании обычного сопоставления один к одному в specialProperty содержится прокси-объект, поэтому Я не могу проверить на null) Так что в коде я могу просто сделать customer.specialProperty == null, чтобы увидеть, есть ли у Customer SpecialProperty.

Я пытаюсь написать запрос, который будет возвращать всех клиентов, которые имеют ненулевое SpecialProperty, и другой запрос, который будет возвращать всех клиентов, которые имеют нулевое SpecialProperty.

Я могу получить клиентов, которые имеют ненулевой SpecialProperty, например:

from Customer customer inner join customer.specialProperty

Однако я не могу получить клиентов, у которых нет SpecialProperty (например, customer.specialProperty == null)

Я пробовал несколько вещей. В основном я хочу что-то вроде

from Customer customer where customer.specialProperty is null

но при этом создается sql, который проверяет, что customer.id имеет значение null по любой причине.

Предложения

1 Ответ

0 голосов
/ 22 мая 2009

у вас есть column = "id" в вашем определении specialProperty

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...