java - Hibernate 实体中的多个 SequenceGenerator

标签 java hibernate jpa orm hibernate-mapping

是否可以在 Hibernate 实体类中使用 2 个序列生成器。我想在我的情况下使用两个序列生成器,一个用于主键,另一个用于简单字段。我怎样才能达到同样的效果?

@Data
@Table(name="a_b")
@SequenceGenerator(name = "a1_seq", sequenceName = "a1_seq", allocationSize    = 1)
@SequenceGenerator(name = "b1_seq", sequenceName = "b1_seq", allocationSize = 1)
public class ABC {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "a1_seq")
    private Integer id;

    @Column(name = "c")
    private String c;

    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "b1")
    @Column(name = "b)
    private Integer b;

}

最佳答案

您应该只有一个主键 SequenceGenerator:

@Id
@Column(name = "id")
@SequenceGenerator(name = "a1_seq", sequenceName = "a1_seq", allocationSize    = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "a1_seq")
private Integer id;

对于外键,您可以拥有:

@Column(name = "b, columnDefinition="serial")
private Integer b;

这应该适用于 PostgreSQL。

关于java - Hibernate 实体中的多个 SequenceGenerator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539915/

相关文章:

java - 如何在 Java 中生成正态累积分布?它的逆cdf?对数正态怎么样?

java - 如何连接 Hibernate 和 MySQL

java - JPA/Hibernate 有条件的一对多关系?

java - Bean创建异常, Autowiring 依赖注入(inject)失败

java - 横向模式在 Android Studio 中不起作用

java - ASyncTask 并返回 ArrayList

java - appengine 版本今天 7.12.12 -java

java - 如何解决 java.io.NotSerializableException : com. google.appengine.datanucleus.query.JPQLQuery?

java - JPA native 查询结果集映射不起作用?

java - JPA - 不在数据库中保存父表 ID