使用 none 主键 table 的 Hibernate 映射

Hibernate mapping with none primary key table

MySQL 数据库中有一个没有任何主键的 table。我想使用休眠来访问 java 的数据端。但是,hibernate 无法解析映射文件。其他 table 已正确映射。这个问题是主键 none 的原因吗?我必须至少创建一个主键来映射此 table 吗?或者还有别的吗?

Table

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

Exception:

org.hibernate.boot.InvalidMappingException: Could not parse mapping document: Users.hbm.xml (RESOURCE)

根据 Hibernate 规范,每个实体都应该有 Id,但如果您无法将 Id 添加到当前 table,您仍然可以创建 class User 而无需 Entity 注释,并将本机查询的结果映射到此 class.