1. 程式人生 > 實用技巧 >spring data jpa初識

spring data jpa初識

先貼下自己的簡單程式碼

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增加一個空的建構函式