云原生数据仓库AnalyticDB PostgreSQL版在mybastis的mapper.xml中用if标签,和postgresql结合使用时无法生效?
postgresql是可以和mybastis的mapper.xml中用if标签一起使用的。可能要check下语法或者配置之类的导致的影响,您可以尝试使用CASE WHEN,来替代if,prepare语句需要SQL pattern保持不变 您这样写可能会导致SQL改变了,可以尝试类似这样构建SQL 保持SQL pattern不变看看SELECT field1, field2
FROM tablename
WHERE (filterCondition IS NULL OR filter = filterCondition);
可以尝试类似这样构建SQL 保持SQL pattern不变看看,我是从避开使用if标签角度出发的。可能就算使用if标签通过某些配置也能解决这个问题。上面说的解法是推测if标签在filterCondition为NULL和不为NULL时生成不同的prepared statement导致出了问题。因此想要绕过去。 ,此回答整理自钉群“云原生数据仓库AnalyticDB PostgreSQL版交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。