/ / Je reçois une erreur dans le mappage en hibernation @OneToMany? - java, hibernate, spring-boot, annotations, mappage hibernate

Je reçois une erreur dans le mappage d'hibernation @OneToMany? - java, hibernate, spring-boot, annotations, hibernation-mapping

Je suis en train d’essayer d’avoir une connexion multiple entre deux classes, mais j’obtiens cette erreur. org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany.

voici mon 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;

Réponses:

2 pour la réponse № 1

Vous annotez votre Job avec @OneToMany. Signifie que vous aurez un attribut sur Job et plus sur JobCostSplit.

Donc si tu veux en avoir un Job et plus JobCostSplit vous devez le définir comme ceci:

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

2 pour la réponse № 2

Vous devez annoter le champ dans JobCostSplit en tant que @ManyToOne

 @ManyToOne
private Job job

1 pour la réponse № 3

vous devez d'abord écrire

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

dans Job.java, puis ajoutez

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

dans JobCostSplit.java


0 pour la réponse № 4

Dans job.java, remplacez @OneToMany par @ManyToOne