問題預覽
- 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