1

私はEclipseLink 2.5.0を使用しています。次のことを達成しようとしています。

  • 非キー フィルターを使用してオブジェクトをクエリします。
  • 結果が null でない場合はキャッシュする必要があり、同じフィルター値を持つ今後のクエリはデータベースに送信されません。
  • 結果が見つからない場合、結果はキャッシュされず、同じフィルター値を持つ今後のクエリはデータベースに移動する必要があります。

ヒントで達成できるはずだと思いますeclipselink.query-results-cache.ignore-nullが、以下を含めると

<hint name="eclipselink.query-results-cache.ignore-null" value="true"/>

結果はキャッシュされていません。そして、私が以下を含めている場合

<hint name="eclipselink.query-results-cache" value="true"/>

「なし」(レコードが見つからない) もキャッシュされています。私の完全な名前付きクエリは次のようになります

 <named-query name="find.Employee.findEmployeeByPlace">
        <description>
        Find employee by place.
        </description>
        <query><![CDATA[
        select e 
        from Employee e
        where e.place = :place
        ]]></query>
        <!--<hint name="eclipselink.query-results-cache" value="true"/>-->
        <hint name="eclipselink.query-results-cache.ignore-null" value="true"/>
    </named-query>

私の調査結果はHow to get Glassfish/EclipseLink/JPA to cache entityManager.find results that return nullの反対のようです

4

0 に答える 0