السبات - الاستعلام التخزين المؤقت / ذاكرة التخزين المؤقت المستوى الثاني لا يعمل حسب كائن القيمة التي تحتوي على فرعية

StackOverflow https://stackoverflow.com/questions/2201457

سؤال

لقد تكافح مع المشكلة التالية:
لدي كائن قيمة يحتوي على لوحات مختلفة. كل لوحة له قائمة الحقول.

رسم الخرائط:

<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>

يمكنني استخدام المعايير التالية للحصول على كائن القيمة:

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

كما أرى استعلام ذاكرة التخزين المؤقت يحتوي فقط على الاختيار الرئيسي مثل

select * from CTRY where ctry_cd_id=?

كل من المسلجعين و Raferfieldvo هي المستوى الثاني مخزنة. إذا قمت بالتحقق من محتوى ذاكرة التخزين المؤقت للمستوى الثاني، يمكنني أن أرى أنه cortains the rafeles and the ravoytrypanels أيضا وأستطيع أن أرى الاختيار .. من CTRY حيث CITY_CD_ID = ... في منطقة ذاكرة التخزين المؤقت QUERY أيضا.

عندما أسمي Servlet، يبدو أنه يستخدم ذاكرة التخزين المؤقت، ولكن المرة الثانية لا. إذا كنت تحقق من محتوى ذاكرة التخزين المؤقت باستخدام JMX، فيمكن أن يكون كل شيء على ما يرام، ولكن عندما أقيس وقت الوصول إلى الكائنات، يبدو أنه لا يستخدم دائما ذاكرة التخزين المؤقت دائما.

هتاف زولتان

هل كانت مفيدة؟

المحلول

أعتقد أنك بحاجة إلى مخبأ أيضا الجمعية:

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top