小编Bra*_*ley的帖子

使用@EmbeddedId通过组合键上的@GeneratedValue生成的NULL ID

尝试通过Spring Data JPA在具有复合键(Long&Date)的表中保存一行。复合键的Long部分是@GeneratedValue。但是在进行基本的save()调用时出现以下错误:

org.hibernate.id.IdentifierGenerationException: null id generated for:class com.bts.billing.domain.CashBatchPaymentHistoryDto
Run Code Online (Sandbox Code Playgroud)

日期是在save()之前手动设置的,并且我已经验证了音序器存在于数据库中并且可以访问。

实体

@Entity
@Table(name = "CASH_BATCH_PMT_H")
public class CashBatchPaymentHistoryDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private CashBatchPaymentHistoryPK pk;

    private Date        cashBatchProcDt;
    @Column(name = "C_CBP_STS", nullable = false)
    private String      cashBatchStatus;
    @Column(name = "C_CBP_TYP", nullable = false)
    private String      cashBatchType;

    //Removed Getters & Setters To Save Space
}
Run Code Online (Sandbox Code Playgroud)

@Embeddable类别

@Embeddable    
@SequenceGenerator(name = "CBPMT", sequenceName = "CBPMT", allocationSize = 1)
public class CashBatchPaymentHistoryPK implements …
Run Code Online (Sandbox Code Playgroud)

jpa composite-key jpa-2.0 spring-data spring-data-jpa

5
推荐指数
1
解决办法
6838
查看次数