我遇到了持久化实体关系对象的Java JPA问题。我的表: Rezervacija由(IDrez,idKorisnik,idKompanija,idKomponenta)组成。我坚持使用新对象(我在IDRez之后从数据库获得了所有3个参数,而且没关系.ps idRez正在自动增量按数据库。
这是我的代码:
public class Komponenta implements Serializable {
@Id
private Integer idKom;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idKomponenta")
private Collection<Rezervacija> rezervacijaCollection = new ArrayList<>();
}
public class Korisnik implements Serializable {
@Id
private Integer idKor;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idKorisnik")
private Collection<Rezervacija> rezervacijaKorisnikCollection = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idKompanija")
private Collection<Rezervacija> rezervacijaKompanijaCollection = new ArrayList<>();
}
public class Rezervacija implements Serializable {
@Id
private Integer idRez;
@JoinColumn(name = "idKom", referencedColumnName = "idKomponenta")
@ManyToOne(cascade = CascadeType.ALL)
private Komponenta idKomponenta;
@JoinColumn(name = "idKor", referencedColumnName = "idKorisnik")
@ManyToOne(cascade = CascadeType.ALL)
private Korisnik idKorisnik;
@JoinColumn(name = "idKompanija", referencedColumnName = "idKompanija")
@ManyToOne(cascade = CascadeType.ALL)
private Korisnik idKompanija;
}
//可执行代码部分em - entitymanager
entityManager.getTransaction().begin();
Korisnik korisnik = entityManager.find(Korisnik.class, 1);
Korisnik kompanija = entityManager.find(Korisnik.class, 2);
Komponenta komponenta = entityManager.find(Komponenta.class, 1);
Rezervacija rez = new Rezervacija(korisnik, kompanija, komponenta);
entityManager.persist(rez);
entityManager.getTransaction().commit();
当我运行此代码时,我遇到了控制台输出错误:
异常说明:缺少字段[komponenta.idKomponenta]的映射。