2016-11-08 24 views
1

2つのクラス間で1対多の接続をしようとしていますが、このエラーが発生していますorg.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany@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; 

答えて

2
としてJobCostSplit内のフィールドに注釈を付ける必要があり

注釈を付けるあなたのJob@OneToManyです。あなたはJob以上の属性をJobCostSplitに持つことを意味します。

ですから、1 Job、よりJobCostSplitを持たせたい場合は、このようにそれを設定する必要があります。

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

あなたは@ManyToOne

@ManyToOne 
private Job job 
1

は、最初のあなたがJob.javaで

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

を記述する必要が、その後、

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

in JobCostSplit.java

0

job.javaで@ManyToOneを@OneToManyに置き換えます。

関連する問題