当前使用版本(必填,否则不予处理)

1.4.6

该问题是如何引起的?(确定最新版也有问题再提!!!)

目前有3个关系表,tableA (1)-->(n) tableB , tableC tableC 是tableB 的 自关联表关系映射表 tableC有2个字段: id, pre_id tableC的这2个字段值,存储的都是 tableB的 ID 值

重现步骤(如果有就写完整)

MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .selectAll(TableA.class) .selectCollection(TableB.class, TableADTO::getBList, b->b .collection(TableC.class, TableBDTO::getCList, c -> c .selectAssociation("pre", TableB.class, TableCDTO::getTableB)) .leftJoin(TableB.class, TableB::getAid, TableA::getId) .leftJoin(TableC.class, TableC::getId, TableB::getBid) .leftJoin(TableB.class, "pre", TableB::getId, TableC::getPreId);

List dtos = tableMapper.selectJoinList(TableADTO.class, wrapper);

报错信息

Unknown column 'pre.ID' in 'on clause'

SQL报错语句: SELECT COUNT(*) AS total FROM TableA t LEFT JOIN TableB t1 ON (t1.A_ID = t.ID ) LEFT JOIN TableC t2 ON ( t2.ID = pre.ID ) LEFT JOIN TableB pre ON (pre.ID = t2.prework_id)

这个SQL正确需求语句: SELECT COUNT(*) AS total FROM TableA t LEFT JOIN TableB t1 ON (t1.A_ID = t.ID ) LEFT JOIN TableC t2 ON ( t2.ID = t1.ID ) LEFT JOIN TableB pre ON (pre.ID = t2.prework_id)

Comment From: lanjf2000

搞错地址了,是mybatis-plus-join插件的,填到错误的地址了。这个问题请关闭