spring boot啟動報出IllegalArgumentException異常


org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through field 'userRepository'; 

nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; 

nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstractcom.liuzeyu.po.Usercom.liuzeyu.dao.UserRepository.findUsernameAndPassword(java.lang.String,java.lang.String)! No property findUsername found for type User!

這個異常重點再最后一個異常 java.lang.IllegalArgumentException
谷歌一下最后一個異常

Failed to create query for method public abstract com.liuzeyu.po.User com.liuzeyu.dao.UserRepository.findUsernameAndPassword(java.lang.String,java.lang.String)! No property findUsername found for type User!
 翻譯: ----->
  無法為方法公共抽象com.liuzeyu.po.User com.liuzeyu.dao.UserRepository.findUsernameAndPassword(java.lang.String,java.lang.String)創建查詢! 找不到類型為User的屬性findUsername!

琢磨一個晚上無果,在群里請教大佬才得以解決:原來是錯在了方法名
findUsernameAndPassword,要符合JPA方法名稱規范,詳情見:
https://www.cnblogs.com/amberbar/p/10261599.html
原因是:

方法的名稱要遵循 findBy + 屬性名(首字母大寫) + 查詢條件(首字母大寫 Is Equals)

     findByNameLike(String name)

    findByName(String name)

    findByNameAndAge(String name, Integer age)

    findByNameOrAddress(String name)...

最后將findUsernameAndPassword改為findByUsernameAndPassword就可以正常運行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM