0
我工作的一個項目,我需要存儲一個實體,它是不可修改的(從庫),所以我用XML實體映射實體對象是這樣的:JPA二級表XML配置
public abstract class BaseModel{
Long uid;
//getters/setters
}
public abstract class LocaleBaseModel{
String locale;
//Other properties, getter/setters
}
public class Article extends LocaleBaseModel{
private Long authorId;
privaet String text;
//Other properties
}
<mapped-superclass class="package.BaseModel">
<attributes>
<id name="uid">
<column name="UID" nullable="false" />
<generated-value strategy="AUTO" />
</id>
</attributes>
</mapped-superclass>
<mapped-superclass class="package.LocaleBaseModel">
<secondary-table name="STableName">
<primary-key-join-column name="MID" referenced-column-name="UID" />
</secondary-table>
<attributes>
<basic name="locale">
<column name="LOCALE" updatable="false" nullable="false" />
</basic>
<basic name="text">
<column name="Text" updatable="false" nullable="false" table="STableName" />
</basic>
</attributes>
</mapped-superclass>
<entity class="package.child.Article" name="Hadith">
<table name="TableName" />
<attributes>
</attributes>
</entity>
但只要我添加<secondarytable>
我得到一個錯誤,這是寧靜的解釋本身:
- 14:58:47379 ERROR ErrorLogger:57 - 錯誤解析XML(2): CVC-複雜type.3.1 :元素012的屬性'版本'的值'2.0'「實體映射」對於相應的 屬性使用無效。屬性'版本'具有固定值'1.0'。
- 14:58:47,379錯誤ErrorLogger:57 - 解析XML的錯誤(2): cvc-complex-type.2.4.a:發現無效的內容,以 元素的「元素集合」開頭。 '{「http://java.sun.com/xml/ns/persistence/orm":basic, 」http://java.sun.com/xml/ns/persistence/orm":version, 「http://java.sun.com/xml/ns/persistence/orm":many-to-one, 」http://java.sun.com/xml/ns/persistence/orm":one- 「http://java.sun.com/xml/ns/persistence/orm":one-to-one, 」http://java.sun.com/xml/ns/persistence/orm 「:多對多, 」http://java.sun.com/xml/ns/persistence/orm":embedded, 「http://java.sun.com/xml/ns/persistence/orm 「:transient}」是預期的。
- 14:58:47,379錯誤ErrorLogger:57 - 解析XML時出錯(2): cvc-complex-type.2.4.a:發現無效內容,以 元素的'secondary-table'開頭。 '{「http://java.sun.com/xml/ns/persistence/orm":description, 」http://java.sun.com/xml/ns/persistence/orm":id-類, 「http://java.sun.com/xml/ns/persistence/orm":exclude-default-listeners, 」http://java.sun.com/xml/ns/persistence/orm「:排除超類偵聽器, 「http://java.sun.com/xml/ns/persistence/orm":entity-listeners, 」http://java.sun.com/xml/ns/persistence/orm 「:pre-persist, 」http://java.sun.com/xml/ns/persistence/orm":post-persist, 「http://java.sun.com/xml/ns/persistence/orm 「:pre-remove, 」http://java.sun.com/xml/ns/persistence/orm":post-remove, 「http://java.sun.com/xml/ns/persistence/orm 「:更新前, 」http://java.sun.com/xml/ns/persistence/orm「:更新後, 」http://java.sun.com/xml/ns/persistence/orm":post-load, 「http://java.sun.com/xml/ns/persistence/orm「:attributes}'是預期的。
我已經從彈簧3.0.5
- 休眠-的EntityManager-3.6.2
- 冬眠-JPA-2.0-API
- 冬眠核以下路徑上,與其他人-3.6.2。最終
它暗示我的是我可以有一個實體的輔助表,但如果enetity是通過定義的層次結構的一部分,它無法控制超類的屬性進入輔助表。 –