2016-11-08 138 views
1

我試圖讓兩個類之間有一個到多個的連接,但我得到這個錯誤org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany@OneToMany hibernate映射中出現錯誤?

這裏是我的代碼,

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; 

回答

2

您註釋您的Job@OneToMany。意思是JobJobCostSplit上有更多的屬性。

所以,如果你想有一個JobJobCostSplit你必須將其設置是這樣的:

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

你必須標註在JobCostSplit領域的@ManyToOne

@ManyToOne 
private Job job 
1

首先你需要寫

@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; 

in JobCostSplit.java

0

在job.java中用@ManyToOne替換@OneToMany