2017-08-08 237 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

感谢你帮忙 –