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_incrementnative 也应该可以工作。

【讨论】:

以上是关于Eclipse + MySql + Hibernate,一个很好的介绍?的主要内容,如果未能解决你的问题,请参考以下文章

找不到hibernate属性

休眠sql错误1146

eclipse连接mysql问题

mysql和eclipse已经连接上但是没有创建表回出现异常吗?

eclipse连接MySQL中文插入数据库时乱码

9月23考试总结