【问题标题】:JPA - Map Serial(Primary Key) Datatype for PostgreSQLJPA - PostgreSQL 的映射序列(主键)数据类型
【发布时间】:2017-03-03 08:35:26
【问题描述】:

我正在开发一个简单的应用程序,我使用GenerationType.SEQUENCE 作为主键,它在数据库中生成 int 数据类型。有没有办法通过映射告诉 JPA 我想在数据库中生成串行数据类型而不是 int 数据类型?

公司:

    @Id
    @SequenceGenerator(
            name="Company_Id_seq",
            sequenceName="\"Company_Id_seq\"",
            schema="test",
            allocationSize=1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="Company_Id_seq")
    @Column(name = "\"Id\"", nullable = false)
    private Integer id;

PostgreSQL:

CREATE TABLE test."Company"
(
  "Id" integer NOT NULL,

我想要什么:

CREATE TABLE test."Company"
(
  "Id" serial NOT NULL,

【问题讨论】:

  • 当你使用“IDENTITY”生成策略时会发生什么?即等同于“SERIAL”数据库类型的东西
  • 我在使用“IDENTITY”时遇到问题,但是是的,它会生成串行数据类型。请使用“IDENTITY”stackoverflow.com/questions/42239134/… 参考此链接了解我的问题

标签: postgresql jpa


【解决方案1】:

SEQUENCE 在数据存储中有“自动递增”列类型时不可用。对于这种情况,您应该使用IDENTITY 策略

【讨论】:

    猜你喜欢
    • 2017-09-01
    • 2021-03-15
    • 1970-01-01
    • 2015-02-03
    • 2019-04-22
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多