【问题标题】:Hibernate joincolumns with composite key different between two entities两个实体之间具有不同组合键的休眠连接列
【发布时间】: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


    【解决方案1】:

    尝试这样的映射:

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumns({ 
      @JoinColumn(name = "x", referencedColumnName = "x", insertable = false, updatable = false), 
      @JoinColumn(name = "y", referencedColumnName = "y", insertable = false, updatable = false), 
      @JoinColumn(name = "z", referencedColumnName = "z")
    })
    DossierBean doss;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      相关资源
      最近更新 更多