最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Mybatis報錯:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named問題

 更新時間:2025年01月15日 09:52:25   作者:Recently 祝祝  
文章主要討論了在使用MyBatis進行數(shù)據(jù)庫操作時遇到的幾個常見問題及其解決方法,首先,文章指出如果DTO類中沒有定義getter和setter方法,會導致反射異常,解決方法是使用Lombok的@Data注解自動生成這些方法

錯誤提示

服務器處理發(fā)生異常:

nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘userTaskqueryDTO’ in ‘class com.lz.platform.trauma.api.interfaces.dto.task.UserTaskqueryDTO’

解決方式

可能錯誤原因一

解決方法一:

DTO沒有寫getter/setter方法,需要添加上。SpringBoot在DTO上加@Data

@Data是一個Lombok提供的注解,可以自動為Java類生成一些常用的方法,包括getter、setter、toString、equals、hashCode等方法,從而簡化Java類的編寫。

使用@Data注解可以讓代碼更加簡潔,提高開發(fā)效率。

@Data
@ApiModel(value = "模糊查詢列表")
public class UserTaskqueryDTO implements Serializable {
    private String idno;

    private String  Code;

    private String keyWord;
}

可能錯誤原因二

解決方法二:

DAO文件上沒有加上注入方法@Repository

DAO文件上需要加上@Repository

@Repository是Spring框架中的一個注解,用于標識一個類作為數(shù)據(jù)訪問對象(DAO)的組件。它的作用是將DAO層的Bean標記為Spring容器中的Bean,并自動執(zhí)行Bean的注冊、依賴注入等操作。

可能錯誤原因三

解決方法三:

JAVA中Mapper文件不識別#{dto.propertyName}語法,將dto.去掉

Mapper文件中方法DTO注入不能帶上DTO名稱。

錯誤Mapper:

 <select id="queryUserTraumaTaskList" resultType="com.lz.task.TraumaTask"  parameterType="com.lz.task.UserTaskqueryDTO">
        select * from   task t where 1=1
        <if test=" userTaskqueryDTO.no != null and  userTaskqueryDTO.no != ''">
            and t.NO = #{userTaskqueryDTO.no}
        </if>

        <if test="userTaskqueryDTO.keyWord != null and userTaskqueryDTO.keyWord !=''">
            and ( t.STERNO like concat( concat('%',#{userTaskqueryDTO.keyWord}),'%') or
            t.NAME like concat( concat('%',#{userTaskqueryDTO.keyWord}),'%') or
            t.IClass like concat( concat('%',#{userTaskqueryDTO.keyWord}),'%'))
        </if>

        order by t.date desc
    </select>

按照上邊的寫法會出現(xiàn)報錯: 

服務器處理發(fā)生異常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘userTaskqueryDTO’ in ‘class com.lz.platform.trauma.api.interfaces.dto.task.UserTaskqueryDTO’

下邊的寫法才是正確的寫法: 

把DTO去掉之后,報錯就消失了,加了DTO系統(tǒng)讀取不到,去掉之后句好了

  <select id="queryUserTraumaTaskList" resultType="com.lz.task.TraumaTask"  parameterType="com.lz.task.UserTaskqueryDTO">
        select * from   task t where 1=1
        <if test=" no != null and  no != ''">
            and t.NO = #{no}
        </if>

        <if test="keyWord != null and keyWord !=''">
            and ( t.STERNO like concat( concat('%',#{keyWord}),'%') or
            t.NAME like concat( concat('%',#{keyWord}),'%') or
            t.IClass like concat( concat('%',#{keyWord}),'%'))
        </if>

        order by t.date desc
    </select>

錯誤原因

在Mapper文件中,使用DTO(Data Transfer Object)來傳遞數(shù)據(jù),可以將數(shù)據(jù)從Java代碼傳輸?shù)綌?shù)據(jù)庫,也可以將數(shù)據(jù)從數(shù)據(jù)庫傳輸?shù)絁ava代碼。

通常情況下,我們將DTO中的屬性名與數(shù)據(jù)庫表的列名進行對應,以便在Mapper文件中使用這些屬性來構建SQL語句。

  • 在使用DTO的屬性名填充Mapper文件數(shù)據(jù)時,不需要在屬性名前面添加DTO名稱。這是因為DTO通常是一個Java類,而不是一個數(shù)據(jù)庫表,它的屬性名稱是在Java類中定義的,而不是在數(shù)據(jù)庫表中定義的。
  • 在Mapper文件中,我們使用#{propertyName}來引用DTO的屬性。如果我們在屬性名前面添加了DTO名稱,例如#{dto.propertyName},則會導致語法錯誤,因為Mapper文件不能識別這個語法。

因此,在使用DTO的屬性名填充Mapper文件數(shù)據(jù)時,應該只使用屬性名本身,而不需要添加DTO名稱。

例如,如果DTO中有一個屬性名為id,我們可以在Mapper文件中使用#{id}來引用這個屬性,而不需要使用#{dto.id}。

可能錯誤原因四

解決方法四:

sql語句中的屬性名稱,跟接收,或者入?yún)⒌膶傩悦Q不一致

例如:我傳進來的參數(shù)名稱為tmID,但是我sql語句里邊寫的確是tmhosID

把屬性名稱改為一致就可以了

注意:

  • 出參和入?yún)⒌念愋筒灰e了
  • 出參是一個list的話,resultType放的是list參數(shù)的類型。
  • 例如:出參List《TraumaTask》 ,resultType放的就是TraumaTask路徑
  • 出參List《String 》,resultType放的就是java,util.lang

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot中@RestControllerAdvice 全局異常處理的實現(xiàn)

    SpringBoot中@RestControllerAdvice 全局異常處理的實現(xiàn)

    本文主要介紹了SpringBoot中@RestControllerAdvice 全局異常處理的實現(xiàn),通過定義統(tǒng)一響應格式、自定義異常類及測試驗證,確保接口異常時返回指定格式的提示信息,提升錯誤處理一致性
    2025-06-06
  • SpringBoot實現(xiàn)簽到打卡功能的五種方案

    SpringBoot實現(xiàn)簽到打卡功能的五種方案

    在現(xiàn)代應用開發(fā)中,簽到打卡功能廣泛應用于企業(yè)考勤管理、在線教育、社區(qū)運營等多個領域,它不僅是一種記錄用戶行為的方式,也是提升用戶粘性和活躍度的重要手段,本文將介紹5種簽到打卡的實現(xiàn)方案,需要的朋友可以參考下
    2025-06-06
  • SpringMVC中RequestBody注解的List參數(shù)傳遞方式

    SpringMVC中RequestBody注解的List參數(shù)傳遞方式

    這篇文章主要介紹了SpringMVC中RequestBody注解的List參數(shù)傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 使用Java編寫一個文件批量重命名工具

    使用Java編寫一個文件批量重命名工具

    這篇文章主要為大家詳細介紹了如何使用Java編寫一個文件批量重命名工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • 使用SpringBoot整合Sharding Sphere實現(xiàn)數(shù)據(jù)脫敏的示例

    使用SpringBoot整合Sharding Sphere實現(xiàn)數(shù)據(jù)脫敏的示例

    Apache ShardingSphere數(shù)據(jù)脫敏模塊,通過SQL攔截與改寫實現(xiàn)敏感信息加密存儲,解決手動處理繁瑣及系統(tǒng)改造難題,支持Spring和Spring Boot配置,本文通過實例代碼介紹如何使用SpringBoot整合Sharding Sphere實現(xiàn)數(shù)據(jù)脫敏,感興趣的朋友一起看看吧
    2025-06-06
  • 詳解JAVA中static的作用

    詳解JAVA中static的作用

    這篇文章主要介紹了JAVA中static的作用,文中講解非常細致,代碼幫助大家更好的理解,感興趣的朋友可以了解下
    2020-06-06
  • Java?Jar包項目內(nèi)存設置方法舉例

    Java?Jar包項目內(nèi)存設置方法舉例

    這篇文章主要給大家介紹了關于Java?Jar包項目內(nèi)存設置方法的相關資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • kafka消費者kafka-console-consumer接收不到數(shù)據(jù)的解決

    kafka消費者kafka-console-consumer接收不到數(shù)據(jù)的解決

    這篇文章主要介紹了kafka消費者kafka-console-consumer接收不到數(shù)據(jù)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Nacos服務實例的權重設置方式(以及設置為0時的作用與場景)

    Nacos服務實例的權重設置方式(以及設置為0時的作用與場景)

    這篇文章主要介紹了Nacos服務實例的權重設置方式(以及設置為0時的作用與場景),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java實現(xiàn)MinIO文件上傳的加解密操作

    Java實現(xiàn)MinIO文件上傳的加解密操作

    在云存儲場景中,數(shù)據(jù)安全是核心需求之一,MinIO作為高性能對象存儲服務,支持通過客戶端加密(CSE)在數(shù)據(jù)上傳前完成加密,下面我們來看看如何通過Java實現(xiàn)MinIO文件的加密上傳與解密下載吧
    2025-05-05

最新評論

永城市| 古丈县| 将乐县| 石门县| 徐州市| 石楼县| 渑池县| 即墨市| 陵川县| 南京市| 页游| 改则县| 子长县| 永顺县| 鄂州市| 河间市| 陵川县| 扶风县| 高雄市| 库车县| 精河县| 滨州市| 蓬莱市| 建阳市| 格尔木市| 清苑县| 怀仁县| 府谷县| 琼海市| 阜阳市| 龙口市| 呼玛县| 商城县| 阿荣旗| 黄大仙区| 汤阴县| 建昌县| 双牌县| 宝山区| 宁乡县| 平遥县|