gpt4 book ai didi

java - hibernate中discriminator tag位置下移会出现异常

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:34 25 4
gpt4 key购买 nike

我是 Hibernate 新手。我正在尝试将我的父类(super class)和子类映射到一个表。

<class name="Employee" table="EmpWithManager">
<id name="id" column="ID">
<generator class="native"></generator>
</id>
<discriminator column="EMP_TYPE" type="string"></discriminator>
<property name="firstName" column="FIRST_NAME"></property>
<property name="lastName" column="LAST_NAME"></property>
<property name="salary" column="SALARY"></property>


<subclass name="Manager" extends="Employee">
<property name="managerId" column="MAN_ID"></property>
<property name="noOfEmployees" column="NUMBER_EMP"></property>
</subclass>

</class>

这工作正常,但如果更改 discriminator 标记的位置,如下所示:

<class name="Employee" table="EmpWithManager">
<id name="id" column="ID">
<generator class="native"></generator>
</id>

<property name="firstName" column="FIRST_NAME"></property>
<discriminator column="EMP_TYPE" type="string"></discriminator>
<property name="lastName" column="LAST_NAME"></property>
<property name="salary" column="SALARY"></property>


<subclass name="Manager" extends="Employee">
<property name="managerId" column="MAN_ID"></property>
<property name="noOfEmployees" column="NUMBER_EMP"></property>
</subclass>

</class>

这种重新排序给了我以下异常(exception):

Caused by: org.xml.sax.SAXParseException: 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*,fetch-profile*,resultset*,(query|sql-query)*)".

请有人告诉我为什么会发生这种情况以及判别器的位置是否应该放在开头?

最佳答案

如果您查看 http://hibernate.org/dtd/hibernate-mapping-3.0.dtd 条目,它定义了类元素,如下所示。 Order is important 因为这是一个 DTD。请注意,discriminator? 位于 (id|composite-id) 之后,在带有 property 的长条目之前。 (当前)hibernate 文档中没有明确提及此订购要求。

<!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)*
)>

关于java - hibernate中discriminator tag位置下移会出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31841145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com