休眠中有什么方法可以禁用 .hbm 文件中特定属性的二级缓存(通过提供一些忽略缓存属性)?
例如,我有 TextObject.hbm.xml 文件如下
<hibernate-mapping default-cascade="save-update" auto-import="false">
<class name="com.nish.TextObject" table="TEXT_TABLE" schema="SFMFG">
<cache usage="read-write" />
<id name="objectId" type="string">
<column name="OBJECT_ID" length="40" />
<generator class="assigned" />
</id>
<property name="text" type="clob">
<column name="TEXT">
<comment>Text</comment>
</column>
</property>
<property name="plainText" type="string">
<column name="PLAIN_TEXT">
<comment>Plain text</comment>
</column>
</property>
</class>
</hibernate-mapping>
通过使用<cache usage="read-write" />
,我启用了类级缓存。
要求::我想要什么
- 如果我拍摄休眠查询来获取
TextObject.text
属性,那么它不应该被缓存。 - 但是如果我拍摄休眠查询来获取,
TextObject.plainText
那么它应该被缓存。 - 总之,对于我在 .hbm 文件中配置的少数属性,应该禁用缓存,对于我没有配置的少数属性,应该启用缓存。
提问的原因:
- Hibernate 不允许缓存 clob 值,因此在使用
type = 'clob'
缓存获取属性时必须禁用,但对于其他可缓存属性,应启用兑现。
笔记 :
- 是的,我可以通过删除来禁用类级缓存,
<cache usage="read-write" />
但这是为整个实体类删除缓存的最后一种情况。