Eclipse + MySql + Hibernate,一个很好的介绍?
Posted
技术标签:
【中文标题】Eclipse + MySql + Hibernate,一个很好的介绍?【英文标题】:Eclipse + MySql + Hibernate, a good intro? 【发布时间】:2011-01-21 20:19:11 【问题描述】:我正在寻找一个解释如何使用这 3 种技术的教程,找到了这个 one,但它与 HyperSql DB 一起工作(是的,我编辑了 hibernate.cfg.xml 以连接 mysql ......但我刚刚收到一堆错误)。
【问题讨论】:
这里,pastebin.com/TjySJGcz id生成有问题,主键是否定义为自增?您能否显示该表的 DDL 脚本(并确认您的 MySQL 版本)? 我没有使用脚本创建表,也无法将主键定义为自动增量,我在 Toad 中收到此“'COURSE_ID' 的默认值无效” Mysql 尝试执行此操作时,这里是我的 hibernate.cfg.xml pastebin.com/3YWtamfW、Course.hbm.xml、pastebin.com/KdtFE9Td DDL 脚本是 pastebin.com/h9E0rwyy @Wilhelm - 您应该将答案标记为已接受(使用投票计数器下方的勾号)。该答案应该是最能帮助您解决问题的答案(或您自己的答案,如果它是唯一完整的答案) 【参考方案1】:您的表创建脚本不适合您当前使用的休眠生成器策略。正如我所说,您的主键应定义为自动增量:
CREATE TABLE COURSES (
COURSE_ID int(11) NOT NULL AUTO_INCREMENT,
COURSE_NAME varchar(20) DEFAULT NULL,
PRIMARY KEY (COURSE_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
您应该让 SchemaExport 为您生成 DDL,它通常可以防止此类错误;)
【讨论】:
【参考方案2】:使用“Toad for MySQL”创建表解决了问题,当将列设置为主键时,我只是清理了“默认值”并将 AutoIncrement 属性设置为 true。
【讨论】:
【参考方案3】:您可以尝试设置<generator class="identity">
。但是,如果您将数据库列设置为 auto_increment
,native
也应该可以工作。
【讨论】:
以上是关于Eclipse + MySql + Hibernate,一个很好的介绍?的主要内容,如果未能解决你的问题,请参考以下文章