2016-11-08 1 views
1

Ich versuche, eine zu viele Verbindungen zwischen zwei Klassen zu haben, aber ich bekomme diesen Fehler org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany.Ich bekomme einen Fehler in @OneToMany Hibernate Mapping?

hier ist mein Code,

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; 

Antwort

2
mit Anmerkungen versehen

Sie kommentieren Ihre Job mit @OneToMany. Das heißt, Sie haben ein Attribut auf Job und mehr auf JobCostSplit.

Also, wenn Sie Job und mehr JobCostSplit haben einen wollen Sie es wie folgt gesetzt:

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

Sie haben das Feld in JobCostSplit als @ManyToOne

@ManyToOne 
private Job job 
1

zuerst Sie

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

in Job.java schreiben müssen, fügen Sie dann

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

in JobCostSplit.java

0

Ersetzen Sie in job.java @OneToMany durch @ManyToOne