2016-11-08 198 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