spring-boot - 在springboot中使用embeddedId内的序列
问题描述
我有下一个问题->我的数据库上有一个带有复合ID的表...假设(Id1,Id2,Id3,Id4),Id4是由数据库上的序列生成的...
我的问题是,在 Spring Boot 中,我生成了实体“Table1”和相应的“Table1Id”,但是当我想从序列中添加相应的 GeneratedValue 时,并没有生成任何东西。
我在互联网上寻找,我发现 GeneratedValue 在没有 @Id 注释的情况下无法工作,但也许有一些方法可以解决这个问题。
谢谢和对不起我的英语。
解决方案
解决了:
当您的项目中需要复合 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;
总之感谢
推荐阅读
- reactjs - 如何不渲染 office-ui DetailsList 的某些项目
- c# - 如何抛出异常的方法名称
- linux - 如何在 CLI 中列出所有 EBS 卷
- javascript - 如何使用 Jest 测试 img.onload?
- java - Proguard 删除 META-INF/versions/9 代码
- java - Java中的大(自然)数
- node.js - 如何通过文件上传传递参数并在节点js Ionic 3中获取它
- c# - 无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.ICollection`1[System.Double]'
- private - 为什么允许在复制构造函数中对私有数据使用点运算符?
- node.js - Bot Framework Webchat 无法从 Node.js restify 服务器(在 Azure 上)获取令牌:CORS 策略:不存在“Access-Control-Allow-Origin”标头