首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在设置fetch-profile后,映射XML不进行验证

在设置fetch-profile后,映射XML不进行验证
EN

Stack Overflow用户
提问于 2015-10-01 23:54:06
回答 1查看 425关注 0票数 2

基于文档,我在类中附加了获取配置文件.它不能验证,我也不知道为什么。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.mycompany.nncloudrestservice.model">
  <class name="User" table="users">
    <meta attribute="class-description">
        Description under construction
    </meta>
    <id name="id" type="int">
        <column name="id_user" not-null="true"/>
        <generator class="native"/>
    </id>
    <property name="login" column="login" type="string"/>
    <property name="email" column="email" type="string"/>
    <property name="password" column="password" type="string"/>
    <property name="activated" column="activated" type="boolean"/> 
    <property name="info_to_admin" column="info_to_admin" type="string"/>
    <property name="session_id" column="session_id" type="string"/>
    <property name="registered" column="registered" type="date"/>
    <bag name="networks" cascade="all" table="networks" inverse="true" lazy="true">
        <key column="id_user" not-null="true"/>
        <one-to-many class="Network"/>
    </bag>
    <fetch-profile name="user-with-networks">
      <fetch association="networks" style="join"/>
    </fetch-profile>
    <one-to-one name="performance_settings" cascade="all" class="PerformanceSettings"></one-to-one>
  </class>
</hibernate-mapping>

验证结果:

代码语言:javascript
复制
Element type "fetch-profile" must be declared. [23] 
Element type "fetch" must be declared. [24] 
The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)". [27] 

非常奇怪的事情,特别是在发现fetch配置文件在DTD中显式声明之后:

代码语言:javascript
复制
<!ELEMENT class (
    meta*,
    subselect?,
    cache?,
    synchronize*,
    comment?,
    tuplizer*,
    (id|composite-id),
    discriminator?,
    natural-id?,
    (version|timestamp)?,
    (property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,
    ((join*,subclass*)|joined-subclass*|union-subclass*),
    loader?,sql-insert?,sql-update?,sql-delete?,
    filter*,
    fetch-profile*,
    resultset*,
    (query|sql-query)*
)>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-11 03:10:55

在Hibernate 3.5中引入了获取配置文件的特性。在此之前,DTD不包含此标记。您的验证程序捕获过时版本的可能性很高。按照这里的这个解决方案,您应该注意类路径上没有3.0JAR。您还可能希望将SGML_CATALOG_FILES (请看这里)设置为DTD的本地副本,以测试进一步的更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32898557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档