標籤:ext 資料庫連結 long persist generated 連結 static 啟動 boot
- jpa依賴
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency>
- domain類
package com.hikvison.test.pgtest.entity;import java.io.Serializable;import javax.persistence.*;import lombok.Data;/** * 測試pg資料庫的一些效能 * 1. 主鍵自增 * 2. 高並發鎖機制 * * @date 2018年8月28日 下午7:23:17 */@Data@Entity@Table(name="test_pg_wushan")public class TestEntity implements Serializable { private static final long serialVersionUID = 2672553622864930471L; @Id @SequenceGenerator(sequenceName="test_sequence", name="abc" ) @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="abc") @Column(name="id") private Integer id; @Column(name="test_name") private String name; @Transient private Integer version;}
- repository類
package com.hikvison.test.pgtest.repository;import org.springframework.data.jpa.repository.JpaRepository;import com.hikvison.test.pgtest.entity.TestEntity;public interface TestRepository extends JpaRepository<TestEntity, Long> {}
- controller類
package com.hikvison.test.pgtest.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.hikvison.test.pgtest.entity.TestEntity;import com.hikvison.test.pgtest.repository.TestRepository;/** * 測試用contro * * @date 2018年8月28日 下午7:35:25 */@Controllerpublic class TeatController { @Autowired TestRepository r ; @RequestMapping("/") @ResponseBody public String test1(){ return "hello"; } @RequestMapping("/save") @ResponseBody public String test2(){ TestEntity te = new TestEntity(); te.setName(System.currentTimeMillis()+""); r.save(te); return "success"; }}
增加資料庫連結資訊,資料庫驅動,spring boot依賴,啟動運行即可.實現主鍵自增解析:
- 在domain類中,使用了
@Id @SequenceGenerator(sequenceName="test_sequence", name="abc" ) @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="abc") @Column(name="id") private Integer id;
其中:
1) test_sequence:資料庫中的序列名,如果不存在,會建立,初始值為1,步長為1(postgresql和oracle一樣,依賴序列實現主鍵的自增)
2)@SequenceGenerator,注意使用此註解聲明序列.
有個問題:
我測試的表主鍵編號從50開始的,沒弄清楚為什麼.
使用jpa在postgresql資料庫中建立主鍵自增表