spring + mybatis + sharding-jdbc1.5.3 + oracle
多表关联查询时,报错:
### SQL: select a.roleid,a.rolename,a.remark,a.createtime?? from mr_role a, mr_userrole b where a.roleid=b.roleid and b.userid=?
Caused by: com.dangdang.ddframe.rdb.sharding.exception.ShardingJdbcException: Cannot find table rule and default data source with logic tables: '[mr_role, mr_userrole]'
?at com.dangdang.ddframe.rdb.sharding.routing.type.complex.ComplexRoutingEngine.route(ComplexRoutingEngine.java:81)
?at com.dangdang.ddframe.rdb.sharding.routing.router.ParsingSQLRouter.route(ParsingSQLRouter.java:117)
createtime后面的两个问号是什么意思,是不是sql本身就写错了?
mr_role,mr_userrole都是在默认数据源么?信息不足,无法定位。至少需要配置信息,sql执行的sql.show日志,数据库表结构以及全部的执行代码才可能判断是否有问题
createtime后面2个问号只是日志拷贝导致,实际执行SQL在mybatis的xml中,2个问号处只是换了行:
selecta.roleid,a.rolename,a.remark,a.createtime
frommr_rolea,mr_userrolebwherea.roleid=b.roleidandb.userid=#{userid}
mr_role,mr_userrole都是在默认数据源。仅是普通关联查询。同样的配置,执行单表查询正常。
createtablemr_role (
roleid integer notnull,
rolename varchar(50) notnull,
remark varchar(255) ,
createtime varchar2(19) defaultto_char(sysdate,'yyyy.mm.ddhh24:mi:ss')notnull
);
createtablemr_userrole (
userid integer notnull,
roleid integer notnull,
createtime varchar2(19) defaultto_char(sysdate,'yyyy.mm.ddhh24:mi:ss')notnull,
constraintpk_mr_userroleprimarykey(userid,roleid)
);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。