猪齿鱼迁移oracle后,部分SQL报错

iam模块的依赖 用的是0.8.0版本的,在调查询语言的时候SQL报错


查了下原因,是因为在写mapper的时候,单引号没有去掉

我们是在0.10.0版本中对oracle进行支持
image
如果想使用oracle数据库请升级到0.10.0,改了不少不规范的sql

0.10.0 要怎么下载

github上有0.10.0版本的tag,可以拉下来

升级后,调用插入方法,值能插进去,但是返回的dto里没有id
在主键上加的@SequenceGenerator

你的dataobject有没有加注解
image

写了,可这不是mysql写法吗,oracle 写法要怎么写

我们就是这样写的,没有问题的,oracle也是可以回传Id的。
mybatis-starter加载的时候会根据数据源连接判断使用了什么数据库,默认设置为mysql数据库。


mysql设置identity是jdbc,oracle设置的identity是sequence
这里会从配置里面拿identity

image
如果是sequence方式的话,会查sequence的

你的sequence是怎么写的,这样的话数据库建序列的时候要以表名+_S结尾了

不行啊,实测用Oracle数据库的时候DO的主键需要@GeneratedValue(strategy = GenerationType.IDENTITY, generator = “”)注解,不然的话你上面截图里的identity计算出来是"JDBC"进而报错。但是这样的配置放到mysql数据源下运行时就会报错。我看了一下getIdentity()方法是读取的配置文件?所以能不能给个DEMO,演示一下Oracle数据库和mysql应该具体怎样配置。还有,现在提供的insertList方法只支持mysql数据库吧?换到Oracle源的时候动态拼接的sql依旧是mysql版的(io.choerodon.mybatis.provider.special.SpecialProvider.insertList(MappedStatement))

你用的starter依赖是什么版本的,要用0.6.3

用的0.6.4

io.choerodon:choerodon-starter-core:jar:0.6.4.RELEASE:compile


用的iam服务0.10.0 和0.6.4 最后发现select one 还是limit1

你把本地的maven仓库 io.choerodon 库清一下,更新下依赖

这个是maven公库的Jar包,0.6.4我下载下来反编译也没有问题呀。