Spring Boot學習|問題彙總(三)

問題預覽

  • 1)出現了 findById和findOne 報錯出紅
  • 2)springboot java.util.NoSuchElementException: No value present 異常處理
  • 3)前端傳遞時間映射到後端的Date類型問題
  • 4)關於IDEA找不到或無法加載主類
  • 5)spring boot jpa-java.lang.IllegalArgumentException: Not a managed type異常問題解決方法

1.出現了 findById和findOne 報錯出紅

  • 查詢 findById(),在使用的時候會加上一個get()方法

        user = userRepository.findById(id).get();
    

2.springboot java.util.NoSuchElementException: No value present 異常處理

  • 當通過jpa通過id查詢時,使用
    findById(id).get(),當id不存在當,也就是數據庫沒有對應當id數據時,就回報上面當異常。
    判空操作:
    Optional<T>optionalT = orderDetailRepository.findById(id);  
    return optionalT.isPresent() ? optionalT.get(): null; 
    

3.前端傳遞時間映射到後端的Date類型問題

spring boot 寫法

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 private Date time;

spring mvc 寫法

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date orderReturnTime;    

4.關於IDEA找不到或無法加載主類

  • 到項目裏面刪除.idea配置文件,然後用導包重新配置。

5.spring boot jpa-java.lang.IllegalArgumentException: Not a managed type異常問題解決方法

  • 原因:JPA實體類沒有被掃描,導致這樣的情況有以下幾種可能

    1、實體類沒有加上@Entity註解
    對應解決方法在實體類上加上@Entity即可解決問題

    2、沒有按照SpringBoot的約定,默認掃描(application.java 入口類相對的兄弟包及其子包)
    在啓動類中添加掃描註解@ComponentScan(basePackages = "com.boot.demo.xxx.*.*") 用於掃描 @Controller @Service
    添加@EnableJpaRepositories(basePackages = "com.boot.demo.xxx.*.dao") 用於掃描Dao @Repository
    添加@EntityScan("com.boot.demo.xxx.*.*") 用於掃描JPA實體類 @Entity

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章