我设置了一个简单的模型:具有多个图像的文档实体。图像保存在另一个数据库中,并且它们是从其他遗留应用程序更新的,因此我的应用程序只具有只读访问权限。我设置了一个synonim,以便我可以将另一台服务器上的images表用作本地表。 我的映射如下:
<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>
图像类本身是可变的,但我可以通过将访问策略更改为受保护字段来使其不可变。 我在Image映射上设置了mutable =“false”,它的所有属性都有update =“false”,在父关系中设置的Images也用mutable =“false”标记。 但是,在构建会话工厂时,我得到“为mutable:images配置的只读缓存”警告,因为缓存使用是“只读”。
答案 0 :(得分:2)
您指定了mutable =“false”以及您的集合的缓存。摆脱它。