1
  <hibernate-mapping package="com.test.info">
     <class name="LevelInfo">
        <composite-id>
           <key-property column="ID" name="id"/>
        </composite-id>
        <property column="NAME" name="name"/>
        <property column="DESC" name="desc"/>       

        <bag name="details" cascade="all" order-by="ID" >
             <key column="ID"/>
             <one-to-many class="DeatilInfo"/>
             <loader query-ref="includedDetailsSql"/>
       </bag>
    </class>

    <sql-query name="includedDetailsSql" >
          <load-collection alias="details" role="LevelInfo.details"/>
          SELECT {details.*} FROM
          DETAILS_TEMP detail
              WHERE detail.ID = ?
          AND detail.CODE=:myParam
    </sql-query>

    </hibernate-mapping>

問題は、SQL をロードするコレクション内のレコードをフィルタリングするためのパラメーター、つまり myParam を渡したいことです。Hibernate は上記のクエリで外部キー ID を渡しましたが、このクエリで他のパラメータを動的に渡す方法が見つかりませんでした。

さらに、動的に設定できるフィールドでコレクション要素を並べ替えたいと考えています。したがって、バッグマッピングで動的に属性値による順序を設定する方法はありますか。

4

0 に答える 0