【发布时间】:2021-02-12 12:54:57
【问题描述】:
当我使用带有复合键的 Hibernate JoinColumns 时遇到问题:在我的第一个实体 Dossier(PK(X,Y, Z),... ) 我的键由 3 列(X、Y、Z)组成,而在第二个 Person(PK(X,Y),... ) 我只有 2 列在他的复合键中:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @MapsId(value = "id") @JoinColumns({ @JoinColumn(name = "x", referencedColumnName = "x"), @JoinColumn(name = "y", referencedColumnName = "y"), @JoinColumn(name = "z") }) DossierBean doss;
当我运行测试时,由于未映射到单个属性,我收到以下错误:
Caused by: org.hibernate.AnnotationException: referencedColumnNames(CODE_ETAB, IDNT_DOSS) of fr.ressource.documentnumeriqu.db.PersDossierBean.doss referencing fr.ressource.documentnumeriqu.db.DossierBean not mapped to a single property
at org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:336)
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:116)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1562)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1483)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1391)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
... 9 more
【问题讨论】:
标签: hibernate