Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在hibernate中有没有办法禁用.hbm文件中实体类的特定属性的缓存?_Hibernate_Caching_Hibernate Mapping_Clob_Hbmxml - Fatal编程技术网

在hibernate中有没有办法禁用.hbm文件中实体类的特定属性的缓存?

在hibernate中有没有办法禁用.hbm文件中实体类的特定属性的缓存?,hibernate,caching,hibernate-mapping,clob,hbmxml,Hibernate,Caching,Hibernate Mapping,Clob,Hbmxml,在hibernate中有没有办法禁用.hbm文件中特定属性的二级缓存(通过提供一些忽略缓存属性) 例如,我有如下TextObject.hbm.xml文件 <hibernate-mapping default-cascade="save-update" auto-import="false"> <class name="com.nish.TextObject" table="TEXT_TABLE" schema="SFMFG">

在hibernate中有没有办法禁用.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>

正文
纯文本
通过使用
我启用了类级缓存

要求::我想要什么

  • 如果我使用hibernate查询来获取
    TextObject.text
    属性,那么不应该缓存它
  • 但如果我使用hibernate查询来获取
    TextObject.plainText
    ,那么它应该被缓存
  • 总之,对于我在.hbm文件中配置的少数属性,应该禁用缓存,对于我未配置的少数属性,应该启用缓存
问题原因:

  • Hibernate不允许缓存clob值,因此在获取类型为“clob”的属性时,必须禁用缓存,但对于其他可缓存属性,应启用兑现
注意:

  • 是的,我可以通过删除
    禁用类级缓存,但这是删除整个实体类的缓存的最后一种情况