多对一映射列的Hibernate标准

时间:2012-02-03 15:42:21

标签: hibernate criteria

假设我有这样的映射设置;数据库中有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 个答案:

答案 0 :(得分:1)

Restrictions.eq("codeType.id", 42)

Restrictions.eq("codeType", session.load<CodeType>(42))