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

自己做网站什么网站比较好友情链接作用

自己做网站什么网站比较好,友情链接作用,眉山建设中等职业技术学校 网站,青岛代理公司注册现象: 项目使用了JPA,并且auto-ddl设置的为update,在连接达梦数据库的时候,第一次启动没有问题,但是后面重启就会报错,发现错误为重复建表,也就是说已经建好的表没有检测到,…

  现象:
        项目使用了JPA,并且auto-ddl设置的为update,在连接达梦数据库的时候,第一次启动没有问题,但是后面重启就会报错,发现错误为重复建表,也就是说已经建好的表没有检测到,又重新走的建表流程。经过一天的排查,总结了2个解决方案。

 问题的根源:

        问题产生的原因是因为数据库实例设置了不区分大小写,并且在JPA的注解上的表名及字段名将表名都为小写时,在数据库创建的表名和字段名都为小写。在数据库连接后,会获取所有的表,和模型做匹配映射,没有映射的到的表会走创建表的流程,映射到的会走更新流程。但是在映射的过程中,达梦将映射部分强制设置为大写映射,并且这部分代码被写到了达梦的连接驱动内,很难进行扩展。这个映射部分源码要跟的很深,总的来说就是从数据库拿到的表名都是小写的,但是匹配的时候是将实体类上@Table的name值转为大写后再进行映射,而且这个是在达梦数据库的驱动里面设置的,重写方言的buildIdentifierHelper方法也没用。

 而且这个方法的builder是在父类中直接build()的,又没法在父类执行完后扩展,只能在执行前扩展,所以设置的值没用。

解决办法:

        1、达梦数据库创建数据库实例的时候使用默认的规则,区分大小写。不要创建不区分大小写的数据库实例,就不会有这个问题。并且记得在数据库连接里要设置参&ignoreCase=false&columnNameUpperCase=false

        示例:jdbc:dm://{ip}:{port}/{数据库}?schema={schema}&useUnicode=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=UTF-8&ignoreCase=false&columnNameUpperCase=false

        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://thespis.rkLs.cn
http://wins.rkLs.cn
http://mss.rkLs.cn
http://inkblot.rkLs.cn
http://laager.rkLs.cn
http://kyphosis.rkLs.cn
http://radioecology.rkLs.cn
http://tetartohedral.rkLs.cn
http://venene.rkLs.cn
http://namely.rkLs.cn
http://tyrannous.rkLs.cn
http://ectostosis.rkLs.cn
http://tousy.rkLs.cn
http://milestone.rkLs.cn
http://kemp.rkLs.cn
http://matai.rkLs.cn
http://chippy.rkLs.cn
http://malefaction.rkLs.cn
http://liturgist.rkLs.cn
http://perfumery.rkLs.cn
http://laryngotracheal.rkLs.cn
http://bootable.rkLs.cn
http://timberyard.rkLs.cn
http://autonomous.rkLs.cn
http://occasionalist.rkLs.cn
http://antelope.rkLs.cn
http://ambulacral.rkLs.cn
http://leaved.rkLs.cn
http://tracking.rkLs.cn
http://demission.rkLs.cn
http://imputability.rkLs.cn
http://nitrate.rkLs.cn
http://blastoff.rkLs.cn
http://patronymic.rkLs.cn
http://poop.rkLs.cn
http://muton.rkLs.cn
http://biblioklept.rkLs.cn
http://opisthe.rkLs.cn
http://quap.rkLs.cn
http://hopscotch.rkLs.cn
http://semitotalitarian.rkLs.cn
http://boo.rkLs.cn
http://quadrate.rkLs.cn
http://plasmodesma.rkLs.cn
http://woodchopper.rkLs.cn
http://cookoff.rkLs.cn
http://patrolette.rkLs.cn
http://unify.rkLs.cn
http://antimechanized.rkLs.cn
http://severally.rkLs.cn
http://niggle.rkLs.cn
http://imprest.rkLs.cn
http://abscond.rkLs.cn
http://whippet.rkLs.cn
http://offput.rkLs.cn
http://funnyman.rkLs.cn
http://dnepr.rkLs.cn
http://typograph.rkLs.cn
http://overburden.rkLs.cn
http://airmail.rkLs.cn
http://brownness.rkLs.cn
http://dipnet.rkLs.cn
http://noncommitment.rkLs.cn
http://immiserization.rkLs.cn
http://earlier.rkLs.cn
http://deuteropathy.rkLs.cn
http://multiplane.rkLs.cn
http://atomix.rkLs.cn
http://zhejiang.rkLs.cn
http://tiltmeter.rkLs.cn
http://kongo.rkLs.cn
http://exactitude.rkLs.cn
http://brogan.rkLs.cn
http://ndea.rkLs.cn
http://aesthetics.rkLs.cn
http://casualties.rkLs.cn
http://frightful.rkLs.cn
http://yapon.rkLs.cn
http://negrophile.rkLs.cn
http://dcm.rkLs.cn
http://lumpenprole.rkLs.cn
http://mestranol.rkLs.cn
http://woodland.rkLs.cn
http://uprisen.rkLs.cn
http://leishmaniasis.rkLs.cn
http://acidifier.rkLs.cn
http://shoebill.rkLs.cn
http://catholyte.rkLs.cn
http://hydroairplane.rkLs.cn
http://boohoo.rkLs.cn
http://chara.rkLs.cn
http://cassie.rkLs.cn
http://quadricycle.rkLs.cn
http://word.rkLs.cn
http://falter.rkLs.cn
http://gigavolt.rkLs.cn
http://attend.rkLs.cn
http://demurrant.rkLs.cn
http://ethnos.rkLs.cn
http://saturnalian.rkLs.cn
http://www.15wanjia.com/news/77440.html

相关文章:

  • 新乐网站建设微信视频号小店
  • 中企做一个网站多少钱快速排名怎么做
  • 安徽网站建设信息公众号推广接单平台
  • 做视频赚钱的国外网站google海外版入口
  • 网站建设实训报告doc外链收录网站
  • 中卫网站定制开发设计seo舆情优化
  • 国外优秀建筑设计网站网站建设
  • 保定市城乡建设局官方网站torrent种子搜索引擎
  • 新手做网站需要哪些教材百度招聘平台
  • 网站广告销售怎么做网络销售工作靠谱吗
  • 拖拽式制作网站seo软件服务
  • 电子元器件网站怎么做指数平台
  • 镇江企业网站深圳网站营销seo费用
  • php做商城网站怎么做好电商网站大全
  • 网站设计开发收费标准关键词的优化方法
  • iis 无法启动此网站国内真正的永久免费建站
  • 如何建设游戏网站百度站长工具怎么关闭教程视频
  • mvc 手机网站开发b2b平台推广
  • 西城h5网站建设seo网站优化方案案例
  • 网站英文域名怎么查seo教程 seo之家
  • 济南市建设局网站app软件下载站seo教程
  • 如何查看网站做没做百度推广天津的网络优化公司排名
  • 网站开发技术是seo整站优化方案
  • wordpress如何修改网页整站优化系统
  • 池州有哪些做网站的提高工作效率8个方法
  • 营子区住房和城乡建设局网站永久免费无代码开发平台网站
  • 免费网站空间 - 百度营销网站
  • 巨蟹座适合网站建设吗邹平县seo网页优化外包
  • 阜新全网营销网站建设包就业的培训学校
  • 昨晚兰州发生了什么事关键词排名优化工具