-
背景
最近优化项目功能时,其中有部分老代码在mapper中动态注入了整条sql,而且这些sql都是关联了不少表的,还使用了java.util.Map接收返回结果,刚开始时没有问题,但后面场景多了之后有些关联表的字段名称是一样的,导致了返回的结果不正确,mybatis中文官网也有相关介绍。这篇文章主要通过实例(已上传github和gitee)去介绍了如何解决这些问题,但方案是在老代码改不动,重构没成本之下的无奈之举,能解决当前问题,但不建议采用。如果高人有更好的解决方法,请拯救一下我们项目吧!
-
模拟场景
假设有如下3张表,special_type和normal_type表是有比较多的重复字段的:
CREATE TABLE `product_info` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`product_code` varchar(45) DEFAULT NULL,
`product_name` varchar(45) DEFAULT NULL,
`product_description` varchar(45) DEFAULT NULL,
`cost` decimal(16,0) DEFAULT NULL,
`price` decimal(16,0) DEFAULT NULL,
`data_state` varchar(2) DEFAULT NULL,
`created_by` varchar(45) DEFAULT NULL,
`updated_by` varchar(45) DEFAULT NULL,
`created_date` datetime DEFAULT NULL,
`updated_date` datetime DEFAULT NULL,