使用jpa在postgresql資料庫中建立主鍵自增表

來源:互聯網
上載者:User

標籤:ext   資料庫連結   long   persist   generated   連結   static   啟動   boot   

  1. 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>
  1. 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;}
  1. 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> {}
  1. 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依賴,啟動運行即可.實現主鍵自增解析:
  1. 在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資料庫中建立主鍵自增表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.