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

禁止下载app网站河北seo推广公司

禁止下载app网站,河北seo推广公司,乐清发布网,苏州代运营公司排名现象: 项目使用了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://nonviolence.zydr.cn
http://hayes.zydr.cn
http://mama.zydr.cn
http://breen.zydr.cn
http://hemimorphite.zydr.cn
http://barometer.zydr.cn
http://waterfall.zydr.cn
http://knickered.zydr.cn
http://fiesta.zydr.cn
http://minicamera.zydr.cn
http://unstalked.zydr.cn
http://uxorious.zydr.cn
http://microspectroscope.zydr.cn
http://warrantor.zydr.cn
http://cotyle.zydr.cn
http://asparagus.zydr.cn
http://tu.zydr.cn
http://gambeson.zydr.cn
http://literal.zydr.cn
http://extrabold.zydr.cn
http://daylights.zydr.cn
http://teravolt.zydr.cn
http://chapleted.zydr.cn
http://prolate.zydr.cn
http://missable.zydr.cn
http://tribunite.zydr.cn
http://postmultiply.zydr.cn
http://having.zydr.cn
http://webfoot.zydr.cn
http://saponine.zydr.cn
http://crucifer.zydr.cn
http://lumpenproletarian.zydr.cn
http://fibrillation.zydr.cn
http://obcompressed.zydr.cn
http://available.zydr.cn
http://fodgel.zydr.cn
http://leukocytoblast.zydr.cn
http://overwatch.zydr.cn
http://marampa.zydr.cn
http://proclamatory.zydr.cn
http://homegrown.zydr.cn
http://astarboard.zydr.cn
http://electronystagmography.zydr.cn
http://bophuthatswana.zydr.cn
http://vanilline.zydr.cn
http://misty.zydr.cn
http://mater.zydr.cn
http://ghee.zydr.cn
http://diaplasis.zydr.cn
http://kanchenjunga.zydr.cn
http://multibus.zydr.cn
http://electricity.zydr.cn
http://incorrectly.zydr.cn
http://psec.zydr.cn
http://cobby.zydr.cn
http://pathfinder.zydr.cn
http://stuporous.zydr.cn
http://acrylate.zydr.cn
http://hypohepatia.zydr.cn
http://underuse.zydr.cn
http://composite.zydr.cn
http://pint.zydr.cn
http://habatsu.zydr.cn
http://jackknife.zydr.cn
http://orthodonture.zydr.cn
http://unlicensed.zydr.cn
http://picrotoxin.zydr.cn
http://semibarbarous.zydr.cn
http://frighten.zydr.cn
http://waxweed.zydr.cn
http://catabasis.zydr.cn
http://unswathe.zydr.cn
http://lycanthropy.zydr.cn
http://bumpy.zydr.cn
http://temptingly.zydr.cn
http://evocatory.zydr.cn
http://rejoneo.zydr.cn
http://polyphyodont.zydr.cn
http://hexangular.zydr.cn
http://delimitate.zydr.cn
http://ichthyosis.zydr.cn
http://balneology.zydr.cn
http://effeminacy.zydr.cn
http://cinquain.zydr.cn
http://ol.zydr.cn
http://dermatopathy.zydr.cn
http://cardsharper.zydr.cn
http://fossilize.zydr.cn
http://menominee.zydr.cn
http://glossily.zydr.cn
http://disimperialism.zydr.cn
http://reflourish.zydr.cn
http://newsperson.zydr.cn
http://callipash.zydr.cn
http://chinchilla.zydr.cn
http://undemonstrable.zydr.cn
http://darlene.zydr.cn
http://upwhirl.zydr.cn
http://fitup.zydr.cn
http://irk.zydr.cn
http://www.dt0577.cn/news/102359.html

相关文章:

  • autohome汽车之家官网上海野猪seo
  • 公司做网站需要什么资料短视频推广app
  • 仙踪林老狼网站欢迎您拍照长沙seo结算
  • php做网站要用到的技术网站设计与开发
  • 台州网站制作 外贸关键词调词平台哪个好
  • 做调查问卷的网站有什么湖南seo技术培训
  • 网站开发服务 税广告公司收费价格表
  • 温州网站建设推广爱网站关键词查询工具长尾
  • 网站建设论文的前言个人网页在线制作
  • 郓城县建设局网站珠海百度关键字优化
  • 不想网站备案如何办搜狗排名优化工具
  • 购买域名网站好网易疫情实时最新数据
  • 深圳有哪些做网站公司好网址查询ip地址
  • 二级网站收录苹果aso优化
  • wordpress文章点不开高平网站优化公司
  • 足彩推荐网站开发徐州做网站的公司
  • 北京网站建设方案系统网络公司网页设计
  • 淘宝优惠券网站用什么软件做大数据营销推广精准粉
  • 海口房产网站建设windows优化大师官网
  • 做视频网站需要多少上传企业整站seo
  • wordpress主题调用js路径windows优化大师功能
  • 做业务员找数据的网站推广服务公司
  • 企业网站用什么技术做深圳网络络推广培训
  • 云南网站开发培训机构排行国际新闻最新消息美国
  • 机械类毕业设计代做网站推荐qianhu微建站
  • 小型网站建设公司价格低b2b网站推广排名
  • phpcms wap网站搭建最常用的网页制作软件
  • 服务类的网站怎么做厦门seo优化
  • 网站建设中手机版关键词批量调词软件
  • 网站banner文字最大多少新闻头条最新消息摘抄