Spring boot中Hibernate调整外键问题

问题

重启spring boot,把找不到外键。

Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FKbenmnokfsg4w0dajvjk9pvnrr]

排查过程

通过工具,无意间看到一个叫FKbenmnokfsg4w0dajvjk9pvnrr的索引,这个名字和控制台报错很类似,然后,沿着这个索引去看对应的表和对应的字段,然后,跑到Java里面看该表的映射属性。

原因

最开始该属性被映射成外键的,后面再Java中配置去掉了外键,改成了String类型;但是,这个改变对于数据库来说没有变化。数据库还是把该属性对应的字段当做外键处理,所以重启spring boot的时候就报了如上错误。

解决

在数据库中,移除FKbenmnokfsg4w0dajvjk9pvnrr该外键,以及相关索引即可。

总结

在Java代码中调整Hibernate的映射时候,需要看一看数据库中有没有生效。网上的另外解决办法是说升级Spring boot中的Hibernate,通过配置pom.xml

<properties>
	...
	<hibernate.version>5.3.7.Final</hibernate.version>
	...
<、properties>

这种方法并没有解决上述问题。

参考:

Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key Ask Question

HHH-10802

转载于:https://my.oschina.net/fxtxz2/blog/2252271

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值