List<TVehcertUploadLog> list = tVehcertUploadLogService.list(new LambdaQueryWrapper<TVehcertUploadLog>().eq(StringUtils.isNotBlank(tVehcertUploadLog.getVin()),TVehcertUploadLog::getVin,tVehcertUploadLog.getVin())通过截取vin的第八位作为‘dllx’字段,而这个字段是表T_DLLX中的,现在怎么连表查询T_DLLX
时间: 2024-01-21 20:17:21 浏览: 146
你可以使用Mybatis-plus提供的LambdaQueryWrapper的join方法来进行关联查询,例如:
```
list = tVehcertUploadLogService.list(new LambdaQueryWrapper<TVehcertUploadLog>()
.eq(StringUtils.isNotBlank(tVehcertUploadLog.getVin()),TVehcertUploadLog::getVin,tVehcertUploadLog.getVin())
.join(TDllx.class, TDllx::getId, TVehcertUploadLog::getDllx)
.eq(TDllx::getFieldName, "dllx")
);
```
这样就可以通过join方法将TVehcertUploadLog表与TDllx表进行关联查询,并且在查询条件中指定了TDllx表中的fieldName字段为"dllx"。请注意,上述代码仅供参考,具体的实现可能需要根据你的表结构进行调整。
相关问题
List<TVehcertUploadLog> list = tVehcertUploadLogService.list(new LambdaQueryWrapper<TVehcertUploadLog>().eq(StringUtils.isNotBlank(tVehcertUploadLog.getVin()),TVehcertUploadLog::getVin,tVehcertUploadLog.getVin())连表查询T_DLLX不适用.leftjoin
如果要进行连表查询T_DLLX,可以使用以下方式:
```
List<TVehcertUploadLog> list = tVehcertUploadLogService.list(new LambdaQueryWrapper<TVehcertUploadLog>()
.eq(StringUtils.isNotBlank(tVehcertUploadLog.getVin()), TVehcertUploadLog::getVin, tVehcertUploadLog.getVin())
.leftJoin(T_DLLX.class, TVehcertUploadLog::getDlbh, T_DLLX::getDlbh)
.list());
```
这里使用了 `leftJoin` 进行左连接查询,并在参数中指定了两个实体类之间的关联关系。需要根据实际情况做出修改。
public ResponseData<List<ConfigItemDO>> queryDisplayDataByCode(String dictCode) { LambdaQueryWrapper<ConfigItemDO> wrapper = Wrappers.lambdaQuery(ConfigItemDO.class); wrapper.eq(ConfigItemDO::getDictCode, dictCode); List<ConfigItemDO> configItemDOList = getBaseMapper().queryByDictCode(dictCode); String orgIdentifier = baseBean.getUserInfo().getOrgInfo().getOrgIdentifier(); List<ConfigItemDO> itemList = new ArrayList<>(); configItemDOList.forEach(configItemDO -> { List<ConfigItemDO.AuthorityOrg> orgList = configItemDO.getAuthorityOrg(); for (int i = 0; i < orgList.size(); i++) { StringUtils.equals(orgList.get(i).getOrgIdentifier(), orgIdentifier); itemList.add(configItemDO); } }); if (CollectionUtils.isEmpty(itemList)) { String[] parts = orgIdentifier.split("-"); if (parts.length == 1) { return new ResponseData<>(new ArrayList<>()); } String parentOrgIdentifier = ""; while (true) { for (int i = 0; i < parts.length - 1; i++) { parentOrgIdentifier = parentOrgIdentifier + parts[i]; } if (StringUtils.isNotBlank(parentOrgIdentifier)) { for (int i = 0; i < configItemDOList.size(); i++) { List<ConfigItemDO.AuthorityOrg> orgList = configItemDOList.get(i).getAuthorityOrg(); for (int j = 0; j < orgList.size(); i++) { StringUtils.equals(orgList.get(i).getOrgIdentifier(), parentOrgIdentifier); itemList.add(configItemDOList.get(i)); } } parts = parentOrgIdentifier.split("-"); if (CollectionUtils.isNotEmpty(itemList) || parts.length == 1) { break; } } } } return new ResponseData<>(itemList); }
这段代码看起来像是 Java 语言编写的一个查询方法,输入参数为一个字符串类型的字典编码 dictCode,返回一个 ResponseData<List<ConfigItemDO>> 类型的数据。在方法中,使用了 LambdaQueryWrapper 对象封装了一个查询条件,然后通过调用 getBaseMapper() 方法执行查询操作,将结果保存在 configItemDOList 变量中。随后,通过遍历 configItemDOList,将符合当前用户所在组织机构的数据保存在 itemList 变量中。如果 itemList 为空,则继续向上查找所属组织机构,直到找到数据为止。最终,将 itemList 封装在 ResponseData 对象中并返回。
阅读全文