本文主要是介绍【关联字段如何在列表中显示】查询车间列表页面中,显示关联的公司(company)字段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
车间列表显示的隶属公司字段是company_id,该字段是公司表中的主键。
如何修改,让它显示公司表中的 company_name,而不是显示company_id。
这个功能,需要作两表的关联查询,查询出的company_name放在json数组中,返回到前端显示。
前端页面改造
<el-table-column label="隶属公司" align="center" prop="companyId" />
修改为-->
<el-table-column label="隶属公司" align="center" prop="companyName" />
实体类改造(添加字段)
/** 隶属公司 */@Excel(name = "隶属公司的名称")private Long companyName;public Long getCompanyName() {return companyName;}public void setCompanyName(Long companyName) {this.companyName = companyName;}@Overridepublic String toString() {return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE).append("workshopId", getWorkshopId()).append("workshopName", getWorkshopName()).append("workshopDesc", getWorkshopDesc()).append("companyId", getCompanyId()).append("companyName", getCompanyName()).append("backgroundImg", getBackgroundImg()).append("status", getStatus()).append("delFlag", getDelFlag()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).toString();}
SQL语句改造(添加Join查询)
resultMap 中增加 property=“companyName”
<resultMap type="DigWorkshop" id="DigWorkshopResult">---略---<result property="companyId" column="company_id" /><result property="companyName" column="company_name" />---略---</resultMap>
Select公共字段改造(添加company_name列)
SELECTa.workshop_id,a.workshop_name,a.workshop_desc,a.company_id,b.company_name,a.background_img,a. STATUS,a.del_flag,a.create_by,a.create_time,a.update_by,a.update_time
FROMdig_workshop a
LEFT JOIN dig_company b ON a.company_id = b.company_id
BUG
测试部署
看一下后台报错信息:
(无法确定返回值类型)
org.springframework.dao.DataIntegrityViolationException:
Error attempting to get column 'company_name' from result set.
Cause:
java.sql.SQLDataException:
Cannot determine value type from string '江苏联康信息股份有限公司'
虽然它的报错信息,是在service的实现类里,但是我跟进去看了一下,发现写的代码没什么问题。
值无法匹配
我想了想:Error attempting to get column ‘company_name’ from result set. 尝试从result set中获取company_name失败。
是不是这个字段和我实体类里的属性无法匹配?
我去实体类里一看,果然发现了问题的阿症结所在
我居然把companyName的类型写错了,我写成了Long类型,但是它返回的数据是String类型,当然无法匹配了。
将companyName类型修改为 String类型。
修复BUG,再次测试部署
再次测试部署,成功显示
这篇关于【关联字段如何在列表中显示】查询车间列表页面中,显示关联的公司(company)字段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!