2011-02-09 15 views
5

Basit bir model ayarladım: Birden çok görüntü içeren belge varlıkları. Görüntüler başka bir veritabanına kaydedilir ve diğer eski uygulamalardan güncellenir; dolayısıyla, uygulamanızın salt okunur erişimi vardır. Görüntüler tablosunu başka bir sunucuda yerel bir tablo olarak kullanabilmem için kurdum. Benim eşleştirmeleri aşağıdaki gibidir:NHibernate oturum fabrikası oluşturulurken neden "değişebilir için yapılandırılabilen salt okunur önbellek" elde ediliyor?

<class name="Image" mutable="false" table="ImageExternal"> 
    <cache region="images" usage="read-only" /> 
    <id name="Id"> 
     <generator class="assigned" /> 
    </id> 
    <property name="Name" update="false" /> 
    <!-- other properties --> 
</class> 
<class name="Document" table="Document">  
    <id name="Id"> 
     <generator class="guid.comb" /> 
    </id> 
    <!-- other properties --> 
    <set name="Images" mutable="false"> 
     <cache region="images" usage="read-only" /> 
     <key column="some_guid_column" />  
     <one-to-many class="Image" /> 
    </set> 
</class> 

kendisi değişebilirdir görüntü sınıfı, ancak korunan alanlara erişim stratejisi değiştirerek iletmenin yapabilirsiniz. Görüntü eşlemesinde mutable = "false" ayarlıyorum, tüm özellikleri güncelleme = "false" ve ana ilişkide ayarlanan Görüntüler de "değiştirilemez" = "false" ile işaretlendi. Ancak, oturum fabrikasını oluştururken "salt okunur: görüntüler için uyarlanmış salt okunur önbellek" uyarısı alıyorum çünkü önbellek kullanımı "salt okunur".

cevap

2

Setiniz için mutable = "false" ve önbellek belirtiyorsunuz. Bundan kurtul.

+0

Salt okunur önbelleği ne zaman kullanabilirim? Mutable = "false" koleksiyonları ve salt okunur önbellekler uyumlu değil mi? – Vasea

+0

@Vasile, belgelere göre değil. Bunu sınıf haritanızda kullanabilirsiniz, ancak önceden tanımlanmış olduğu gibi koleksiyon eşlemenizde kullanamazsınız. – Vadim

İlgili konular