使用JPA映射双向一对多休眠实体 [英] Mapping a bidirectional One-to-Many Hibernate Entity with JPA

查看:68
本文介绍了使用JPA映射双向一对多休眠实体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Hibernate中映射双向一对多关系.在构建日志中,我收到错误实体映射中的重复列".

I am trying to map a bidirectional One-to-Many relationship in Hibernate. In the build logs I receive the error "repeated column in mapping for entity."

是什么导致了错误?

实体源代码如下.一个具有复合主键.我正在使用Lombok生成吸气剂和吸气剂.

The entity source code is below. One has a compound primary key. I am using Lombok to generate getters and setters.

关系:奖励(一个)->获奖(很多)

The relationship: Award (One) --> AwardReceived (Many)

奖励实体

@Entity
@Table(name = "awards")
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class Award implements Serializable {

    @Id
    @Column(name = "award_id")
    private Long awardId;

    @OneToMany(cascade=CascadeType.ALL, mappedBy = "award")
    private Set<AwardReceived> awardsReceived;

    @Column(name = "award_type")
    private String awardType;

    @Column(name = "award")
    private String award;

    @Column(name = "description")
    private String description;

}

获奖者实体

@Entity
@Table(name = "awards_received")
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class AwardReceived implements Serializable{

    @EmbeddedId
    @JsonUnwrapped
    private AwardReceivedPk awardReceivedPk;

    @ManyToOne(cascade=CascadeType.ALL)
    @JoinColumn(name = "award_id")
    private Award award;

    @Column(name = "award_name")
    private String awardName;

    @Column(name = "citation")
    private String citation;

}

AwardReceivedPk

@Embeddable
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class AwardReceivedPk implements Serializable{

    @JsonIgnore
    @Column(name = "client_no")
    private String clientNo;

    @Column(name = "award_id")
    private Long awardId;

    @Column(name = "year")
    private Long year;

}

推荐答案

请尝试

@ManyToOne(cascade=CascadeType.ALL)
private Award award;

代替

@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "award_id")
private Award award;

这篇关于使用JPA映射双向一对多休眠实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆