mybatisplus多表关联查询用apply的方式
时间: 2023-11-30 18:40:36 浏览: 77
以下是使用MybatisPlus中的QueryWrapper对象进行多表关联查询的示例,其中使用了SQL Server的APPLY表运算符:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import java.util.Map;
@SpringBootTest
class MybatisPlusDemoApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void testApply() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.apply("user.id = user_role.user_id")
.inSql("role_id", "select id from role where name like '%admin%'");
List<Map<String, Object>> userList = userMapper.selectMaps(queryWrapper);
System.out.println(userList);
}
}
```
在上述示例中,我们使用了QueryWrapper对象的apply方法来添加一个自定义的SQL条件,其中使用了SQL Server的APPLY表运算符,将user表和user_role表进行了关联查询,并使用inSql方法添加了一个子查询条件,查询出所有角色名中包含"admin"的用户信息。
阅读全文