当前位置: 首页 > news >正文

中国建设银行春季招聘网站自己怎么开发游戏软件

中国建设银行春季招聘网站,自己怎么开发游戏软件,金安合肥网站建设专业,装修设计公司取名现象#xff1a; 项目使用了JPA#xff0c;并且auto-ddl设置的为update#xff0c;在连接达梦数据库的时候#xff0c;第一次启动没有问题#xff0c;但是后面重启就会报错#xff0c;发现错误为重复建表#xff0c;也就是说已经建好的表没有检测到#xff0c;…  现象         项目使用了JPA并且auto-ddl设置的为update在连接达梦数据库的时候第一次启动没有问题但是后面重启就会报错发现错误为重复建表也就是说已经建好的表没有检测到又重新走的建表流程。经过一天的排查总结了2个解决方案。 问题的根源 问题产生的原因是因为数据库实例设置了不区分大小写并且在JPA的注解上的表名及字段名将表名都为小写时在数据库创建的表名和字段名都为小写。在数据库连接后会获取所有的表和模型做匹配映射没有映射的到的表会走创建表的流程映射到的会走更新流程。但是在映射的过程中达梦将映射部分强制设置为大写映射并且这部分代码被写到了达梦的连接驱动内很难进行扩展。这个映射部分源码要跟的很深总的来说就是从数据库拿到的表名都是小写的但是匹配的时候是将实体类上Table的name值转为大写后再进行映射而且这个是在达梦数据库的驱动里面设置的重写方言的buildIdentifierHelper方法也没用。 而且这个方法的builder是在父类中直接build()的又没法在父类执行完后扩展只能在执行前扩展所以设置的值没用。 解决办法 1、达梦数据库创建数据库实例的时候使用默认的规则区分大小写。不要创建不区分大小写的数据库实例就不会有这个问题。并且记得在数据库连接里要设置参ignoreCasefalsecolumnNameUpperCasefalse 示例jdbc:dm://{ip}:{port}/{数据库}?schema{schema}useUnicodetrueserverTimezoneAsia/ShanghaiuseSSLfalsecharacterEncodingUTF-8ignoreCasefalsecolumnNameUpperCasefalse 2、匹配阶段不好解决就在别的地方想想办法。问题的根源是因为实体类定义的大写表名和数据库中的小写表名匹配不上导致的那就在建表阶段将表设置为大写就行了。而建表阶段的代码重新方言是可以做到的。 创建自定义的StandardTableExporter import org.hibernate.boot.Metadata; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.mapping.Table; import org.hibernate.tool.schema.internal.StandardTableExporter;public class DmStandardTableExporter extends StandardTableExporter {public DmStandardTableExporter(Dialect dialect) {super(dialect);}Overridepublic String[] getSqlCreateStrings(Table table, Metadata metadata, SqlStringGenerationContext context) {table.setName(table.getName().toUpperCase());return super.getSqlCreateStrings(table, metadata, context);} } 重写达梦方言的getTableExporter方法 import org.hibernate.dialect.DmDialect;public class ZeusDmDialect extends DmDialect {//这里是你自定义的StandardTableExporterprivate DmStandardTableExporter tableExporter new DmStandardTableExporter( this );Overridepublic DmStandardTableExporter getTableExporter() {return tableExporter;} }配置使用自己写的写的方言 spring:jpa:properties:hibernate:dialect: a.b.c.d.e.ZeusDmDialect #这里配置自己写的类的全路径名称别照抄 把数据库的之前创建的小写的表名的表全删了多重启几次试试看应该就解决问题了。
http://www.yutouwan.com/news/370121/

相关文章:

  • 为什么网站开发这么便宜免费saascrm
  • 如何自己做网站腾讯工业设计介绍
  • wordpress建购物网站汇办公app安卓版本
  • 网站虚拟机可以自己做吗学院网站建设项目
  • 网站网页优化技巧绵阳市城市建设档案馆网站
  • php做的购物网站代码楼盘推荐排行榜
  • wordpress网站主题seo课程多少钱
  • 专业建站公司费用地产网站模板
  • 祥云平台做网站好不好做宣传图片的软件
  • 免费软件下载官方网站好的网站怎么设计师
  • 网站建设价格济南济南做网站比较好的
  • 网站平台搭建怎么弄的温州人才网站开发
  • 网站做游戏活动策划方案福建网站建设模板
  • 云指网站开发搭建钓鱼网站教程
  • 做cps要做什么类型的网站最新的新闻 最新消息
  • 网站是由多个网页组成的吗wordpress 加水印
  • 做网站用的字体是什么网站建设对客户的影响
  • 荣耀商城官网网站群辉域名登录wordpress
  • 长春火车站地址wordpress默认模板目录在哪里
  • 邢台企业做网站费用建立自己网站要多少钱
  • 哪些购物网站用php做的iis网站防盗链
  • 长春网站建设多少钱saas小程序开发费用
  • 平湖模板网站建设公司建湖哪家专业做网站
  • 建工网站4徐汇区网站建设
  • 昆明官方网站建设秦皇岛网站推广
  • 谷歌做新媒体运营的网站做网站之前的工作
  • 手机制作网站的软件有哪些内容做销售在哪个网站找客户端
  • 职业做网站游戏的西安新闻头条最新消息
  • wordpress中一个侧面导航实现异步昆明seo外包
  • 四川做网站优化价格南京建设企业