[英]Composite primary key issue in hibernate
我正在創建一個休眠應用程序,在其中我想創建一個復合主鍵 。 以下是我編寫的映射文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Fold.ChildrenPark" table="ChildrenPark">
<composite-id>
<key-property name="date" not-null="true"/>
<key-property name="valveOffTime" not-null="true"/>
<key-property name="valveOnTime" not-null="true"/>
</composite-id>
<property name="overHeadTankLevelAfterFilling"/>
<property name="overHeadTankLevelBeforeFilling"/>
<property name="rank"/>
</class>
</hibernate-mapping>
但是我得到如下異常:
- 1689 [http-listener-1(4)] ERROR org.hibernate.util.xml.ErrorLogger -
Error parsing XML (11) : Attribute "not-null" must be declared for
element type "key-property". Severe: 1717 [http-listener-1(4)] WARN
org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate
namespace http://hibernate.sourceforge.net/. Use namespace
http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6
Migration Guide! Severe: 1719 [http-listener-1(4)] ERROR
org.hibernate.util.xml.ErrorLogger - Error parsing XML (2) :
Attribute "not-null" must be declared for element type
"key-property". Info: Exception in insertion of data:
org.hibernate.InvalidMappingException: Unable to read XML
所以我想知道這段代碼中缺少什么內容。我在網上搜索但沒有發現有用的東西,這意味着什么?
有很多事情 :
1 /從更改您的dtd:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
至:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
這將刪除有關過時的休眠名稱空間的警告
2 /刪除密鑰屬性的not-null屬性,因為PK屬性不能為null,所以該屬性對於密鑰屬性不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.