mysql many to one_mysql的表建外键和hbm2java生成many-to-one代码的问题

mysql的表建外键和hbm2java生成many-to-one代码的问题。用hibernate tools生成那个建表的SQL代码会在create语句最后加一个type=MyISAM,这个存储引擎在MYSQL中是不支持外键的。在mysql的参考手册的1.8.5.5. 外键中有如下描述(我这个是5.1版本的,用的是个比较旧的版本,现在的最新版本支持与否我不太清楚,没看手册和测试):

对于InnoDB之外的其他存储引擎,MySQL服务器能够解析CREATE TABLE语句中的FOREIGN KEY语法,但不能使用或保存它。未来将进行扩展,能够将这类信息保存到表规范文件中,以便能被mysqldump和ODBC检索。稍后,还将为MyISAM表实现外键约束。

所以要生成的表要使用外键约束的话,则需要在把生成的MYSQL的SQL中的type=MyISAM去掉,或者换成type(engine)=InnoDB

第二个问题要使用hbm2java和hbm2ddl生成有外键关联的代码,不能只编写含有节点的映射文件,还要把节点参照的类的映射文件和它一起生成代码才能正常运行这两hbm2,否则将发生一个引用了未映射类的错误。一起生成的话,就会生成成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值