2017-08-08 129 views
0

在MySQL數據庫中沒有任何主鍵。我想用hibernate來訪問java的數據端。但是,hibernate無法解析映射文檔。其他表格已正確映射。這個問題不是主鍵的原因嗎?我必須創建至少一個主鍵來映射此表嗎?或者還有其他什麼?沒有主鍵表的Hibernate映射

CREATE TABLE `users` ( `extension` varchar(20) NOT NULL DEFAULT '', `password` varchar(20) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `voicemail` varchar(50) DEFAULT NULL, `ringtimer` int(3) DEFAULT NULL, `noanswer` varchar(100) DEFAULT NULL, `recording` varchar(50) DEFAULT NULL, `outboundcid` varchar(50) DEFAULT NULL, `sipname` varchar(50) DEFAULT NULL, `mohclass` varchar(80) DEFAULT 'default', `noanswer_cid` varchar(20) DEFAULT '', `busy_cid` varchar(20) DEFAULT '', `chanunavail_cid` varchar(20) DEFAULT '', `noanswer_dest` varchar(255) DEFAULT '', `busy_dest` varchar(255) DEFAULT '', `chanunavail_dest` varchar(255) DEFAULT '') ENGINE=MyISAM DEFAULT CHARSET=latin1 

例外:

org.hibernate.boot.InvalidMappingException:無法解析映射文檔:Users.hbm.xml(RESOURCE)

+0

沒有主鍵的表? –

+0

表 –

+0

上沒有主鍵您不需要主鍵。您的Users.hbm.xml中似乎有錯誤。 –

回答

0

根據Hibernate規範,每個實體都應該有Id,但是如果您無法將Id添加到當前表中,則仍然可以創建類User而不需要Entity註釋,並將本機查詢的結果映射到此類。

+0

如何使用本機查詢映射結果?你能解釋一下嗎? –

+0

通過使用'SqlResultSetMapping'註解,您可以指定類字段和表字段的連接,您可以在此處看到一些示例:https://www.thoughts-on-java.org/result-set-mapping-basics/ –

+0

感謝你幫忙 –