如何在hibernate映射文件中创建一个子句?

时间:2010-07-19 14:13:11

标签: java hibernate

我想在获取时在hibernate映射文件中添加一个(where)条件, 我怎么能这样做fetch="select" where id != 1,我也没有使用注释,所以请在映射(hbm)文件中指定。

2 个答案:

答案 0 :(得分:1)

根据Hibernate文档,您可以在映射集合时指定where子句:

  

6.2. Collection mappings

     

(...)<map>元素是   代表:

<map
    name="propertyName"                                         (1)
    table="table_name"                                          (2)
    schema="schema_name"                                        (3)
    lazy="true|extra|false"                                     (4)
    inverse="true|false"                                        (5)
    cascade="all|none|save-update|delete|all-delete-orphan|delet(6)e-orphan"
    sort="unsorted|natural|comparatorClass"                     (7)
    order-by="column_name asc|desc"                             (8)
    where="arbitrary sql where condition"                       (9)
    fetch="join|select|subselect"                               (10)
    batch-size="N"                                              (11)
    access="field|property|ClassName"                           (12)
    optimistic-lock="true|false"                                (13)
    mutable="true|false"                                        (14)
    node="element-name|."
    embed-xml="true|false" 
>

    <key .... />
    <map-key .... />
    <element .... />
</map>
     

(...)

     

(9)where(可选):指定一个   任意SQL WHERE条件   在检索或删除时使用   采集。这很有用   集合只需要包含一个   可用数据的子集。

<class>级也支持此功能。

答案 1 :(得分:0)

您可以在映射文件中定义<filter>,并将其附加到类映射定义。有关示例,请参阅docs