Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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 为多对一关联休眠二级缓存_Hibernate_Second Level Cache_Many To One - Fatal编程技术网

Hibernate 为多对一关联休眠二级缓存

Hibernate 为多对一关联休眠二级缓存,hibernate,second-level-cache,many-to-one,Hibernate,Second Level Cache,Many To One,我对hibernate有些陌生,正在尝试使用ehCache实现二级缓存。我在尝试使用二级缓存检索多对一关联时遇到问题。my foo.hbm.xml文件中的关联映射如下所示: <hibernate-mapping> <class name="com.test.Foo" table="FOO" > <id name="id" type="long"> <column name="FOO_ID" precisio

我对hibernate有些陌生,正在尝试使用ehCache实现二级缓存。我在尝试使用二级缓存检索多对一关联时遇到问题。my foo.hbm.xml文件中的关联映射如下所示:

<hibernate-mapping>
    <class name="com.test.Foo" table="FOO" >
        <id name="id" type="long">
            <column name="FOO_ID" precision="11" scale="0" />
            <generator class="assigned" />
        </id>

        <many-to-one name="bar" class="com.test.Bar" >
            <cache usage="read-only" />
            <column name="BAR_TY" not-null="true" />
            <column name="BAR_VAL" length="4" not-null="true" />
        </many-to-one>

    </class>
</hibernate-mapping>

(这是我实际的hbm.xml文件的一个非常简短/修改的版本,希望没有错误)

请注意,我只缓存“bar”,而不是“foo”。但是,当我使用此映射运行单元测试时,会出现以下错误:

严重:解析XML:XML InputStream时出错(40)元素类型“多对一”的内容必须匹配(元*,(列|公式)*)”

当我取出它时,它工作正常,只是没有L2缓存。 是否只是多对一关系不支持缓存?如果是这样的话,有没有关于如何解决这个问题的建议


仅供参考,我有另一个单元测试,它直接读取“bar”(即,不通过关联),并且工作正常-第二次我获取“bar”时,它从二级缓存中获取,因此我相当有信心我已正确完成其余配置。非常抱歉,仍然在石器时代工作,因此没有注释等。

您是否尝试过将
条码的定义移动到另一个,将
.hbm.xml
分开,并仅从
foo
引用它?

您是否尝试过将
条码的定义移动到另一个,分离
.hbm.xml
并仅从
foo
引用它?

您的xml格式不正确。它是
内部的非法节点

看见关于
多对一
元素的声明:

<!ELEMENT many-to-one (meta*,(column|formula)*)>
    <!ATTLIST many-to-one name CDATA #REQUIRED>
    <!ATTLIST many-to-one access CDATA #IMPLIED>
    <!ATTLIST many-to-one class CDATA #IMPLIED>
    <!ATTLIST many-to-one entity-name CDATA #IMPLIED>
    <!ATTLIST many-to-one column CDATA #IMPLIED>
    <!ATTLIST many-to-one not-null (true|false) #IMPLIED>
    <!ATTLIST many-to-one unique (true|false) "false">
    <!ATTLIST many-to-one unique-key CDATA #IMPLIED>
    <!ATTLIST many-to-one index CDATA #IMPLIED>
    <!ATTLIST many-to-one cascade CDATA #IMPLIED>
    <!ATTLIST many-to-one outer-join (true|false|auto) #IMPLIED>
    <!ATTLIST many-to-one fetch (join|select) #IMPLIED>
    <!ATTLIST many-to-one update (true|false) "true">
    <!ATTLIST many-to-one insert (true|false) "true">
    <!ATTLIST many-to-one optimistic-lock (true|false) "true">  
    <!ATTLIST many-to-one foreign-key CDATA #IMPLIED>
    <!ATTLIST many-to-one property-ref CDATA #IMPLIED>
    <!ATTLIST many-to-one formula CDATA #IMPLIED>
    <!ATTLIST many-to-one lazy (false|proxy|no-proxy) #IMPLIED>
    <!ATTLIST many-to-one not-found (exception|ignore) "exception">
    <!ATTLIST many-to-one node CDATA #IMPLIED>
    <!ATTLIST many-to-one embed-xml (true|false) "true">  

缓存元素可以放置在类级别:

<hibernate-mapping>
    <class name="com.test.Foo" table="FOO" >
        <cache usage="read-only" />
        <id name="id" type="long">


或者对于集合,如
set
map
bag
等。

您的XML格式不正确。它是
内部的非法节点

看见关于
多对一
元素的声明:

<!ELEMENT many-to-one (meta*,(column|formula)*)>
    <!ATTLIST many-to-one name CDATA #REQUIRED>
    <!ATTLIST many-to-one access CDATA #IMPLIED>
    <!ATTLIST many-to-one class CDATA #IMPLIED>
    <!ATTLIST many-to-one entity-name CDATA #IMPLIED>
    <!ATTLIST many-to-one column CDATA #IMPLIED>
    <!ATTLIST many-to-one not-null (true|false) #IMPLIED>
    <!ATTLIST many-to-one unique (true|false) "false">
    <!ATTLIST many-to-one unique-key CDATA #IMPLIED>
    <!ATTLIST many-to-one index CDATA #IMPLIED>
    <!ATTLIST many-to-one cascade CDATA #IMPLIED>
    <!ATTLIST many-to-one outer-join (true|false|auto) #IMPLIED>
    <!ATTLIST many-to-one fetch (join|select) #IMPLIED>
    <!ATTLIST many-to-one update (true|false) "true">
    <!ATTLIST many-to-one insert (true|false) "true">
    <!ATTLIST many-to-one optimistic-lock (true|false) "true">  
    <!ATTLIST many-to-one foreign-key CDATA #IMPLIED>
    <!ATTLIST many-to-one property-ref CDATA #IMPLIED>
    <!ATTLIST many-to-one formula CDATA #IMPLIED>
    <!ATTLIST many-to-one lazy (false|proxy|no-proxy) #IMPLIED>
    <!ATTLIST many-to-one not-found (exception|ignore) "exception">
    <!ATTLIST many-to-one node CDATA #IMPLIED>
    <!ATTLIST many-to-one embed-xml (true|false) "true">  

缓存元素可以放置在类级别:

<hibernate-mapping>
    <class name="com.test.Foo" table="FOO" >
        <cache usage="read-only" />
        <id name="id" type="long">

或用于
集合
地图
等收藏