在 spring boot 中使用 embeddedId 中的序列
Consuming sequence inside a embeddedId in springboot
我有下一个问题 -> 我的数据库上有一个 table 具有复合 ID...
假设(Id1,Id2,Id3,Id4),Id4是由db上的一个序列生成的...
我的问题是,在spring启动时,我生成实体'Table1'和对应的'Table1Id',
但是当我想从序列中添加相应的 GeneratedValue 时,没有生成任何东西。
我在互联网上寻找,我发现如果没有 @Id 注释,GeneratedValue 将无法工作,但也许有一些方法可以解决这个问题。
谢谢,对不起我的英语。
已解决:
当你的项目需要复合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;
总之,谢谢
我有下一个问题 -> 我的数据库上有一个 table 具有复合 ID... 假设(Id1,Id2,Id3,Id4),Id4是由db上的一个序列生成的...
我的问题是,在spring启动时,我生成实体'Table1'和对应的'Table1Id', 但是当我想从序列中添加相应的 GeneratedValue 时,没有生成任何东西。
我在互联网上寻找,我发现如果没有 @Id 注释,GeneratedValue 将无法工作,但也许有一些方法可以解决这个问题。
谢谢,对不起我的英语。
已解决:
当你的项目需要复合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;
总之,谢谢