java - 生成复合 PK null id

标签 java hibernate spring-mvc jpa jakarta-ee

Spring 启动:2.0.2

hibernate 核心:5.2.17

方言:SQLServer2012Dialect

尝试使用 JpaRepository save() 方法保存 DistributionActivities 实体时,操作失败并显示以下消息:

org.hibernate.id.IdentifierGenerationException: null id generated for:class DistributionActivitiesEmails

父实体:

@Entity
@Table(name = "DistributionActivities")
public class DistributionActivities implements Serializable 
{   
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)    
    @Column(name ="ActivityID")
    private Long activityID;

    @OneToMany(cascade={CascadeType.ALL})
    @Fetch(FetchMode.JOIN)
    @JoinColumn(name="activityID", referencedColumnName="activityID")
    private Set<DistributionActivitiesEmails> distributionActivitiesEmails;
}

子实体:

@Entity
@Table(name = "DistributionActivitiesEmails ")
public class DistributionActivitiesEmails implements Serializable 
{
    @EmbeddedId
    private DistributionActivitiesEmailsId id;

    @Length(max = 50)
    private String EmailAdress;
}

综合PK:

@Embeddable
public class DistributionActivitiesEmailsId implements Serializable 
{
    @ManyToOne
    @JoinColumn(name="ActivityID")
    private DistributionActivities distributionActivities;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)    
    @Column(name ="ActivityEmailID")
    private Long activityEmailID;    
} 

最佳答案

根据 @EmbeddedId javadoc,不支持在嵌入式 id 类中定义的关系映射。

关于java - 生成复合 PK null id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50929698/

相关文章:

java - 在编译库中查找 System.gc()

hibernate - 问题更新 Grails 域类

Java持久化问题

java - Hibernate提供了多少种访问数据库的方式?

java - 无法在spring mvc中的 Controller 中接收表单数据

java - hibernate PropertyNotFoundException

java - 使用keytool的 keystore 中 "key password"的意义是什么

java.lang.UnsupportedOperationException : 'posix:permissions' not supported as initial attribute on Windows 异常

java - Controller 库直接访问HttpServletRequest

java - 在 Spring Controller 中获取请求 URL 中的哈希参数