ImprovedNamingStrategy

由mysql表名大小写所知道

混江龙づ霸主 提交于 2019-11-29 09:00:10
今天遇到一个问题是: 在mysql手动创建数据库表(大写表名,小写字段名)后,启动项目后发现,hibernate又给我生成了一个小写的同结构表,猜想到会不会是mysql表名区分大小写后,google一下,果不其然,LINUX下的MYSQL默认是要区分表名大小写的;据说有个规则是: MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下: 1.数据库名与表名是严格区分大小写的 2.表的别名是严格区分大小写的 3.列名与列的别名在所有的情况下均是忽略大小写的 4.变量名也是严格区分大小写的 看到这基本确认是mysql表名大小写问题,但是突然想到该项目之前在使用oracle数据库生成的表名都是大写,再次google,原来oracle在建表时候,大小写都是可以的(默认大写,小写的话,加引号),而且查询的时候不区分大小写,所以不会出现上面mysql的问题,查询的大小写表是两个表。 可是,我这项目都生成了30多个表,不能让我挨个修改小写吧,想到这里,记起曾经看过hibernate的一个关于从class--》table等命名映射规则类,再次google,查到:原来是 只要:“扩展org.hibernate.cfg.ImprovedNamingStrategy 命名策略,然后在配置文件中指向自己的命名配置文件即可”,ok,明白了,开始复写一个 ImprovedNamingStrategy