spring 根据上一个值递增主键(NUMBER)

yshpjwxd  于 2023-04-04  发布在  Spring
关注(0)|答案(1)|浏览(67)

我有一个非常具体的用例。
我的表中已经有数千个条目,它们在不同的环境中(DEV、TEST等)都是可用的。
我最近开始使用JPA Annotations @Entity、@Table、@Id、@Column等。在@GeneratedValue(strategy=?)中是否有任何可用的功能,允许基于从主键的最后一个值检查的插入?
我知道有一个initialValue属性。但是,由于该表存在于不同的环境中,主键具有不同的最后值。因此,我不能硬编码它。
我试图避免在实际插入值之前进行特殊的DB调用来获取TABLE.next_瓦尔条目。
提问理由:hibernate-jpa的工作方式是尝试从id:0插入。我不能仅仅因为想在代码中添加hibernate-jpa持久化特性就删除所有条目。
请告诉我解决这个问题的方法。
示例代码:

@Entity
@Table(name="DUMMY")
public class Dummy {
    
    @Id
    @Column(name="primary_key_dummy")
    private Integer pk;
}
3qpi33ja

3qpi33ja1#

有一个基于自动增量的生成类型。应该可以与不同的数据库正常工作。

@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private long pk;

(免责声明:请在上线前先在DEV上检查)

相关问题