spring data jpa初識
阿新 • • 發佈:2020-10-31
先貼下自己的簡單程式碼
import javax.persistence.*; import java.util.Date; import java.util.UUID; @Entity @Table(name = "vehicle") public class Vehicle { /** serialVersionUID. */ private static final long serialVersionUID = 1L; /** 主鍵. */ @Id @GeneratedValue private UUID t_id; private Date created_at = new Date(); private Date modified_at = new Date(); @Column(unique = true) private String id; public UUID getT_id() { return t_id; } public void setT_id(UUID t_id) { this.t_id = t_id; } public Date getCreated_at() { return created_at; } public void setCreated_at(Date created_at) { this.created_at = created_at; } public Date getModified_at() { return modified_at; } public void setModified_at(Date modified_at) { this.modified_at = modified_at; } public String getId() { return id; } public void setId(String id) { this.id = id; } public Vehicle() { } public Vehicle(UUID t_id, Date created_at, Date modified_at, String id) { this.t_id = t_id; this.created_at = created_at; this.modified_at = modified_at; this.id = id; } }
import org.springframework.data.jpa.repository.JpaRepository; public interface VehicleRepos extends JpaRepository<Vehicle, String> { }
public void addData() { Date now = new Date(); Vehicle vehicle = new Vehicle(UUID.randomUUID(), now, now, "vehicleid02"); vehicleRepos.save(vehicle); }
spring: datasource: url: jdbc:postgresql://<ip>:<port>/<db name> username: postgres password: postgres jpa: show-sql: true hibernate: ddl-auto: update properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect temp: use_jdbc_metadata_defaults: false
也記錄下sping小白第一次用spring data jpa遇到的問題
1 user表的問題
小知識點:在postgresql中,預設有一張user表用來存放postgresql的使用者,所以當我們自己建立一個user表的時候,優先訪問系統預設的user表。當我們想訪問自己建立的user表的時候,需要加public字首(public.user).
所以第一次建表時剛好踩到這個坑,執行後進postgres看,user表根據程式碼中model自動建立了,save方法也執行成功了,但是select的時候又沒有資料
2空的建構函式
報錯:org.springframework.orm.jpa.JpaSystemException: No default constructor for entity
需要給資料庫表model增加一個空的建構函式