首页 > 解决方案 > 在springboot中使用embeddedId内的序列

问题描述

我有下一个问题->我的数据库上有一个带有复合ID的表...假设(Id1,Id2,Id3,Id4),Id4是由数据库上的序列生成的...

我的问题是,在 Spring Boot 中,我生成了实体“Table1”和相应的“Table1Id”,但是当我想从序列中添加相应的 GeneratedValue 时,并没有生成任何东西。

我在互联网上寻找,我发现 GeneratedValue 在没有 @Id 注释的情况下无法工作,但也许有一些方法可以解决这个问题。

谢谢和对不起我的英语。

标签: spring-bootcomposite-keydatabase-sequence

解决方案


解决了:

当您的项目中需要复合 id 时,使用 embeddedId 是不可能的。必须在我的 compossiteId 上使用 @IdClass 而不是 @EmbeddedId,因为第二个不适用于 @GeneratedValues,例如我的解决方案是:

@Data
@Entity(name = "table_name")
@IdClass(CompositeIdTest.class)
public class TestClass implements Serializable {



    @Id
    @Column(name = "column", nullable = false)
    private String column;


    @Id
    @SequenceGenerator(name = "sequence", sequenceName = "sequence", allocationSize = 1)
    @GeneratedValue(generator = "sequence")
    private int idGenerated;

总之感谢


推荐阅读