我在@OneToMany 休眠映射中遇到错误?

I'm getting error in @OneToMany hibernate mapping?

我试图在两个 类 之间建立一对多连接,但我收到此错误 org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany

这是我的代码,

Job.java

@OneToMany
@JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)

private Set<JobCostSplit> jobCostSplit;

JobCostSplit.java

@Column(name = "job_id")
private Long jobId;

@JsonIgnore
@OneToMany
@JoinColumn(name = "job_id", referencedColumnName = "id", insertable = false, updatable = false)
private Job job;

您必须将 JobCostSplit 中的字段注释为 @ManyToOne

 @ManyToOne
 private Job job

您用 @OneToMany 注释了您的 Job。意味着您将在 Job 上拥有一个属性,在 JobCostSplit 上拥有更多属性。

所以如果你想拥有一个 Job 和更多 JobCostSplit 你必须这样设置:

@ManyToOne
@JoinColumn(name = "job_id", referencedColumnName = "id", insertable = false, updatable = false)
private Job job;

首先你需要写

@OneToMany(fetch = FetchType.LAZY, mappedBy = "job")
private Set<JobCostSplit> jobCostSplit= new HashSet<JobCostSplit>();

在Job.java中,然后添加

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="jobId",nullable=false)
private Job job;

在JobCostSplit.java

在job.java中将@OneToMany替换为@ManyToOne