3
我有兩個表:Hibernate的一對多映射
<class name="Content" table="language_content" lazy="false">
<composite-id>
<key-property name="contentID" column="contentID"/>
<key-property name="languageID" column="languageID"/>
</composite-id>
<property name="Content" column="Content" />
</class>
和
<class name="SecretQuestion" table="secretquestions" lazy="true">
<id name="questionID" type="integer" column="QuestionID">
<generator class="increment"></generator>
</id>
<property name="question" column="Question"/>
<property name="isUsing" column="IsUsing"/>
<bag name="contents" inverse="true" cascade="all,delete-orphan">
<key column="question" />
<one-to-many class="Content" />
</bag>
</class>
我試圖SecretQuestion的「問題」 屬性映射到「內容識別」 屬性內容但Eclipse拋出異常:
org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.sms.model.entity.SecretQuestion.contents#1]
如果我更換與<key column="contentID" />
,它可以運行,但映射了錯誤的數據(實際上,據我看到的,它的questionID映射與內容的內容識別)
任何人都知道該怎麼做,我什麼試圖在這裏實現?
謝謝。
UPDATE
奧基,修改帕斯卡後表示,這裏是新的錯誤:
javax.servlet.ServletException: org.hibernate.MappingException: Foreign key (FKB65C9692FCD05581:language_content [contentID,languageID])) must have same number of columns as the referenced primary key (secretquestions [QuestionID])
此錯誤意味着我必須有用於secretquestions表,我不復合主鍵不想:(
UPDATE
I W生病舉一個例子來更清楚什麼,我試圖做的:
Table SecretQuestion
questionID* question answer
1 4 a
2 5 a
3 6 a
Table Content
contentID* languageID* content
1 1 a
1 2 b
2 1 c
2 2 d
3 1 e
3 2 f
4 1 g
4 2 h
5 1 i
5 2 j
6 1 k
6 2 l
現在我想問題4,5,6映射到內容ID 4,5,6
將測試此,但稍後... – 2010-09-03 07:30:19