springboot 集成 jpa/hibernate SpringData系列四 @Query註解及@Modifying註解

 

 

pom.xmlhtml

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

還須要一個根據實際狀況的 mysql connecter前端

 

application.propertiesmysql

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/detectx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.open-in-view=false

這裏 ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai 必需要加上,能解決中文編碼問題和springboot 2.0 以上版本的報錯問題nginx

spring.jpa.properties.hibernate.format_sql=true  這裏的這個key雖然找不到,可是實際上是有效的,參考 https://cloud.tencent.com/developer/ask/55788web

SpringBoot將容許您使用如下方法設置任何可用的Hibernate屬性:

spring.jpa.properties.*

因此spring.jpa.properties.hibernate.format_sql=true也會起做用的。

 

 

springboot 2.0 以上須要注意的:spring

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/project?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

必需要這個 否則會報各類錯 參考:
https://www.cnblogs.com/EasonJim/p/6906713.html
https://www.jianshu.com/p/836d455663da

 

springboot 設置不須要設置項目名的方式(更加方便了前端對於資源的引用和nginx的解析)sql

server.servlet.context-path=/
便可不須要以項目名做爲web目錄

 

hibernate 相關:數據庫

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
getOne換成findOne便可


hibernate 解決詭異的mysql存入中文亂碼:
使用hibernate查詢mysql,經過bean的get方法拿到字符串再寫入mysql中的字段會亂碼,須要String string = xxx.get(),把get方法拿到的值傳入到新的string中,在存入數據庫就不會中文亂碼了。

 

jpa的具體搭建狀況能夠參考項目 detectx 和 project(女僕管理系統),rm只是單純地集成了hibernate4,由於已經集成了mybatis,又由於是個ssm項目,因此沒法再集成jpa了。springboot

 

關於 jpa/hibernate 的有選擇性的更新這個功能,只能經過手動設定的方式實現,目前沒有方法實現自動有選擇性的更新,mybatis支持。mybatis

 

參考:

springboot 學習之集成JPA

SpringBoot 2.1.1.RELEASE 集成JPA

Spring Data JPA 中findOne() 和 getOne()的區別

SpringData系列四 @Query註解及@Modifying註解

在Spring Data JPA 中使用Update Query更新實體類@DynamicUpdate,@DynamicInsert

相關文章
相關標籤/搜索