亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決Mybatis報(bào)錯(cuò):org.apache.ibatis.reflection.ReflectionException: There is no getter for property named問(wèn)題

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

錯(cuò)誤提示

服務(wù)器處理發(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’

解決方式

可能錯(cuò)誤原因一

解決方法一:

DTO沒(méi)有寫(xiě)getter/setter方法,需要添加上。SpringBoot在DTO上加@Data

@Data是一個(gè)Lombok提供的注解,可以自動(dòng)為Java類(lèi)生成一些常用的方法,包括getter、setter、toString、equals、hashCode等方法,從而簡(jiǎn)化Java類(lèi)的編寫(xiě)。

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

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

    private String  Code;

    private String keyWord;
}

可能錯(cuò)誤原因二

解決方法二:

DAO文件上沒(méi)有加上注入方法@Repository

DAO文件上需要加上@Repository

@Repository是Spring框架中的一個(gè)注解,用于標(biāo)識(shí)一個(gè)類(lèi)作為數(shù)據(jù)訪問(wèn)對(duì)象(DAO)的組件。它的作用是將DAO層的Bean標(biāo)記為Spring容器中的Bean,并自動(dòng)執(zhí)行Bean的注冊(cè)、依賴(lài)注入等操作。

可能錯(cuò)誤原因三

解決方法三:

JAVA中Mapper文件不識(shí)別#{dto.propertyName}語(yǔ)法,將dto.去掉

Mapper文件中方法DTO注入不能帶上DTO名稱(chēng)。

錯(cuò)誤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ě)法會(huì)出現(xiàn)報(bào)錯(cuò): 

服務(wù)器處理發(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’

下邊的寫(xiě)法才是正確的寫(xiě)法: 

把DTO去掉之后,報(bào)錯(cuò)就消失了,加了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>

錯(cuò)誤原因

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

通常情況下,我們將DTO中的屬性名與數(shù)據(jù)庫(kù)表的列名進(jìn)行對(duì)應(yīng),以便在Mapper文件中使用這些屬性來(lái)構(gòu)建SQL語(yǔ)句。

  • 在使用DTO的屬性名填充Mapper文件數(shù)據(jù)時(shí),不需要在屬性名前面添加DTO名稱(chēng)。這是因?yàn)镈TO通常是一個(gè)Java類(lèi),而不是一個(gè)數(shù)據(jù)庫(kù)表,它的屬性名稱(chēng)是在Java類(lèi)中定義的,而不是在數(shù)據(jù)庫(kù)表中定義的。
  • 在Mapper文件中,我們使用#{propertyName}來(lái)引用DTO的屬性。如果我們?cè)趯傩悦懊嫣砑恿薉TO名稱(chēng),例如#{dto.propertyName},則會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤,因?yàn)镸apper文件不能識(shí)別這個(gè)語(yǔ)法。

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

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

可能錯(cuò)誤原因四

解決方法四:

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

例如:我傳進(jìn)來(lái)的參數(shù)名稱(chēng)為tmID,但是我sql語(yǔ)句里邊寫(xiě)的確是tmhosID

把屬性名稱(chēng)改為一致就可以了

注意:

  • 出參和入?yún)⒌念?lèi)型不要弄錯(cuò)了
  • 出參是一個(gè)list的話(huà),resultType放的是list參數(shù)的類(lèi)型。
  • 例如:出參List《TraumaTask》 ,resultType放的就是TraumaTask路徑
  • 出參List《String 》,resultType放的就是java,util.lang

總結(jié)

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

相關(guān)文章

  • 使用linux部署Spring Boot程序

    使用linux部署Spring Boot程序

    springboot程序在linux服務(wù)器上應(yīng)該怎么部署?這次就分享下linux下如何正確部署springboot程序,感興趣的朋友一起看看吧
    2018-01-01
  • MyBatis中的JdbcType映射使用介紹

    MyBatis中的JdbcType映射使用介紹

    這篇文章主要介紹了MyBatis中的JdbcType映射使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java.io.File的renameTo方法移動(dòng)文件失敗的解決方案

    java.io.File的renameTo方法移動(dòng)文件失敗的解決方案

    這篇文章主要介紹了java.io.File的renameTo方法移動(dòng)文件失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • ByteArrayOutputStream與InputStream互相轉(zhuǎn)換方式

    ByteArrayOutputStream與InputStream互相轉(zhuǎn)換方式

    這篇文章主要介紹了ByteArrayOutputStream與InputStream互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實(shí)現(xiàn)單位換算功能

    Java實(shí)現(xiàn)單位換算功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)單位換算功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 淺談java Properties類(lèi)的使用基礎(chǔ)

    淺談java Properties類(lèi)的使用基礎(chǔ)

    下面小編就為大家分享一篇淺談java Properties類(lèi)的使用基礎(chǔ),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • SpringMVC上傳文件的兩種方法

    SpringMVC上傳文件的兩種方法

    這篇文章主要為大家詳細(xì)介紹了SpringMVC上傳文件的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JAVA一個(gè)快速排序?qū)崿F(xiàn)代碼

    JAVA一個(gè)快速排序?qū)崿F(xiàn)代碼

    排序有哪幾種方法?請(qǐng)列舉。并用JAVA實(shí)現(xiàn)一個(gè)快速排序.,需要的朋友可以參考下
    2017-02-02
  • 寶塔升級(jí)JDK版本超詳細(xì)圖文教程

    寶塔升級(jí)JDK版本超詳細(xì)圖文教程

    寶塔自動(dòng)安裝的JDK是一種用于開(kāi)發(fā)和運(yùn)行Java程序的軟件開(kāi)發(fā)工具包,下面這篇文章主要給大家介紹了關(guān)于寶塔升級(jí)JDK版本的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • SpringBoot項(xiàng)目統(tǒng)一枚舉轉(zhuǎn)換實(shí)踐過(guò)程

    SpringBoot項(xiàng)目統(tǒng)一枚舉轉(zhuǎn)換實(shí)踐過(guò)程

    文章介紹了在Spring Boot項(xiàng)目中統(tǒng)一枚舉轉(zhuǎn)換的實(shí)踐,通過(guò)使用自定義的父枚舉接口和AttributeConverter、ConverterFactory、JsonSerializer和JsonDeserializer等工具,實(shí)現(xiàn)了枚舉與數(shù)據(jù)庫(kù)、請(qǐng)求參數(shù)、響應(yīng)參數(shù)和消息參數(shù)之間的自動(dòng)轉(zhuǎn)換
    2024-12-12

最新評(píng)論