这个问题很明显意思是:GetStaffParentsRequest类里面没有属性request的getter方法
(当然最常见的可能就是:该类真的没有get方法,这种情况加上getter方法就好 或者同lombok注解@Getter)
实际上类并没有request这个属性
后面经过判断
因为我的mapper里面是 List<StaffInfo> getStaffParentsRequest(GetStaffParentsRequest request);
然后xml里面是 #{request.staffNo} 下面的我已经修正了
修改方式有两种(二选一)
- 修改mapper为
List<StaffInfo> getStaffParentsRequest(@Param("request") GetStaffParentsRequest request);
或者 - 修改xml为我下面这种
(方法一肯定更好改。我为什么选方法二,因为我想确认这个方式也是可行的)
SELECT
staff.StaffNo,
staff.PositionID,
staff.CnName,
staff.Mobile,
staff.Title,
staff.DomainAccount
FROM
[CentaStaff].[Staff] staff WITH ( NOLOCK )
JOIN CentaStaff.StaffDepartmentRole deptrole WITH ( NOLOCK ) ON staff.StaffID = deptrole.StaffID
WHERE
staff.Status = 'P'
AND deptrole.IsPrimaryRole = 1
AND deptrole.DepartmentID IN (
SELECT deptrole.DepartmentID FROM [CentaStaff].[Staff] staff
JOIN CentaStaff.StaffDepartmentRole deptrole ON staff.StaffID = deptrole.StaffID
WHERE staff.StaffNo = #{staffNo} )
AND PositionID > ( SELECT PositionID FROM [CentaStaff].[Staff] WHERE staff.StaffNo = #{staffNo})
AND PositionID < 1024
<if test="isWithSelf == true">
union
SELECT
staff.StaffNo,
staff.PositionID,
staff.CnName,
staff.Mobile,
staff.Title,
staff.DomainAccount
FROM [CentaStaff].[Staff] staff WITH ( NOLOCK )
WHERE staff.StaffNo = #{staffNo} AND staff.Status = 'P'
</if>
ORDER BY
PositionID
感觉自己比之前强了些许。之前很多时候遇到问题就百度。现在很多问题可以通过报错判断问题在哪。然后调试下就能解决