Frage

Ich habe mit dem folgenden Problem zu kämpfen:
Ich habe ein Wertobjekt, das verschiedene Panels enthält. Jedes Panel verfügt über eine Liste von Feldern.

Kartierung:

<class name="com.aviseurope.core.application.RACountryPanels" table="CTRY" schema="DBDEV1A" where="PEARL_CTRY='Y'" lazy="join">
<cache usage="read-only"/>
<id name="ctryCode">
<column name="CTRY_CD_ID" sql-type="VARCHAR2(2)" not-null="true"/>
</id>
<bag name="panelPE" table="RA_COUNTRY_MAPPING" fetch="join" where="MANDATORY_FLAG!='N'">
<key column="COUNTRY_LOCATION_ID"/>
<many-to-many class="com.aviseurope.core.application.RAFieldVO" column="RA_FIELD_MID" where="PANEL_ID='PE'"/>
</bag>
</class>

Ich verwende die folgenden Kriterien, um das Wertobjekt zu erhalten:

Session m_Session = HibernateUtil.currentSession();
            m_Criteria = m_Session.createCriteria(RACountryPanels.class);
            m_Criteria.add(Expression.eq("ctryCode", p_Country));
            m_Criteria.setCacheable(true);

Wie ich sehe, enthält der Abfrage -Cache nur die Hauptauswahl wie

select * from CTRY where ctry_cd_id=?

Sowohl Racountrypanels als auch Rafieldvo sind zwischengespeichert. Wenn ich den Cache -Inhalt der zweiten Ebene überprüfe, kann ich sehen, dass er auch die RAFields und die Racuntrypanels kointziiert, und ich kann auch die Auswahl sehen, wobei Ctry_cd_id = ... auch in der Abfrage -Cache -Region.

Wenn ich das Servlet nenne, scheint es, dass er den Cache verwendet, aber zweites Mal nicht. Wenn ich den Inhalt des Cache mit JMX überprüfe, scheint alles in Ordnung zu sein, aber wenn ich die Objektzugriffszeit messe, scheint es, dass es den Cache nicht immer verwendet.

Prost Zoltan

War es hilfreich?

Lösung

Ich denke, Sie müssen auch den Assoziation zwischenspeichern:

<bag name="panelPE" table="RA_COUNTRY_MAPPING" fetch="join" where="MANDATORY_FLAG!='N'">

  <cache usage="read-write"/>

  <key column="COUNTRY_LOCATION_ID"/>
  <many-to-many class="com.aviseurope.core.application.RAFieldVO" column="RA_FIELD_MID" where="PANEL_ID='PE'"/>
</bag>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top