SpringBoot 整合jpa遇到的一些問題

2021-08-21 09:15:26 字數 1407 閱讀 3357

使用springboot整合jpa遇到一些問題,主要歸為如下幾點:

1.啟動專案時,報錯:cannot determine embedded database driver class for database type none

2.controller方法中引數是bean型別,進行mock測試時不知道如何傳遞引數

3.對jpa.hibernate.ddl-auto配置了解不夠,導致mock測試時出現第一次成功,第二次失敗的問題

問題1解決思路:

1.新增相關配置

spring.datasource.dirver-class-name=com.mysql.jdbc.driver

spring.datasource.url=jdbc:mysql:

spring.datasource.username=mpup

spring.datasource.password=mpup

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.show-sql=true

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.improvednamingstrategy

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.mysql5dialect

問題2

解決思路:

controller方法**如下:

public void addplayer(@requestbody player aplayer)

mock單元測試**如下:

try

catch (exception e)

完整**路徑如下:

問題3學習了下jpa.hibernate.ddl-auto的使用詳解:

jpa.hibernate.ddl-auto是hibernate的配置屬性,其主要作用是:自動建立、更新、驗證資料庫表結構。該引數的幾種配置如下:

·create-drop:每次載入hibernate時根據model類生成表,但是sessionfactory一關閉,表就自動刪除。

·update:最常用的屬性,第一次載入hibernate時根據model類會自動建立起錶的結構(前提是先建立好資料庫),以後載入hibernate時根據model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等應用第一次執行起來後才會。

·validate:每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新錶,但是會插入新值。

學習日誌 springboot整合JPA

1.編寫實體類 entity 告訴spring這是乙個實體類 table 之地你和哪個表對映。不寫則預設是user,即實體類名的小寫。指定 name public class user 3.配置檔案編寫 spring datasource driver class name com.mysql.jd...

springboot整合jpa的分頁操作

分頁的工具類 package com.pig.pigbase.tools import org.springframework.data.domain.pagerequest import org.springframework.data.domain.pageable import org.spr...

springboot 整合JPA 主鍵生成方式常用

採用mysql主鍵自增屬性生成 generatedvalue strategy generationtype.identity 指明生成主鍵的方式為mysql的自增主鍵 id column name id generatedvalue strategy generationtype.identity...