Критерии гибернации для сопоставленного столбца «многие к одному» - PullRequest
1 голос
/ 03 февраля 2012

Предположим, у меня настроены такие сопоставления; в базе данных есть CodeType строк, а в таблице кодов также есть Code строк. Каждый Code может иметь определенный тип кода.

<class name="CodeType" table="CODE_TYPE">
    <id name="id" column="ID">
        <generator class="org.hibernate.id.MultipleHiLoPerTableGenerator">
            <param name="max_lo">100</param>
        </generator>
    </id>
    <property name="name" column="NAME"></property>
    <property name="description" column="DESCRIPTION"></property>
    <property name="version" column="VERSION"></property>
</class>

А вот и коды. Поскольку многие коды могут быть одного типа, определяется many-to-one.

<class name="Code" table="CODE">
<id name="id" column="ID">
    <generator class="org.hibernate.id.MultipleHiLoPerTableGenerator">
        <param name="max_lo">100</param>
    </generator>
</id>
<property name="name" column="name"></property>
<many-to-one name="codeType" class="CodeType" column="CODE_TYPE_ID"></many-to-one>
<property name="version" column="VERSION"></property>

Мне нужно найти те коды, которые имеют определенный тип. Как я могу это сделать? Если бы я не установил codeType как многие-к-одному, а вместо этого сохранил его как целое число, я мог бы легко написать что-то вроде .add( Restrictions.eq("codeTypeId", 42)).

1 Ответ

1 голос
/ 06 февраля 2012
Restrictions.eq("codeType.id", 42)

или

Restrictions.eq("codeType", session.load<CodeType>(42))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...