2

私は2つのクラスを持っています:

public class Car {
    private Integer id;
    private List<CarOrder> carOrders;
}

public class CarOrder {
    private Car car;
    private Long endDate;
    private Long id;
}

および休止状態のマッピング

<class entity-name="car" name="test.es.Car" table="CARS" schema="ARK_ES">
        <cache usage="read-write"/>
        <id name="id" column="ID">
            <generator class="sequence">
                <param name="sequence">ES_SEQUENCE</param>
            </generator>
        </id>
        <bag name="carOrders" inverse="true" lazy="true">
            <cache usage="read-write"/>
            <key column="CAR_ID"/>
            <one-to-many not-found="ignore" entity-name="carOrder"/>
        </bag>
    </class>
    <class entity-name="carOrder" name="temp.es.CarOrder" table="CAR_ORDERS" schema="ARK_ES">
        <cache usage="read-write"/>
        <id name="id" column="ID">
            <generator class="sequence">
                <param name="sequence">ES_ORDER_SEQUENCE</param>
            </generator>
        </id>
        <property name="endDate" column="END_DATE"/>
        <many-to-one name="car" entity-name="car">
            <column name="CAR_ID"/>
        </many-to-one>
    </class>

endDate が特定の値より大きいすべての車と車の注文を読み込む必要があります。また、車の注文のクエリをキャッシュする必要があります。休止状態のフィルターを使用しようとしましたが、キャッシュされていません。カスタムクエリなしで hibernate api を使用してこれを達成することは可能ですか? 車には注文がないことを忘れていましたが、それは結果に違いありません。

ありがとう。

4

1 に答える 1

0

したがって、コレクション クラスで @fitler および @filterdef アノテーションを使用できます。ただし、セッションでフィルターを有効にすることが非常に重要です。フィルターを有効にする方法については、このリンクに従ってください。デフォルトでは有効になっていません。 sessionFactory.getCurrentSession() の休止状態フィルターを有効にする方法は?

于 2013-08-19T04:25:58.950 に答える