首页 > 解决方案 > Hibernate:两个外键作为 id

问题描述

我已经在我的三个实体catalogBtableAtableAB. tableAB具有 and 的主键组合tableA.tableAIdcatalogB.catalogBId我使用了以下代码:

@Entity
@Table(name = "tableAB", schema = Constantes.SCHEMA_SOLICITUD,uniqueConstraints = {@UniqueConstraint(columnNames = { "tableAId  ", "catalogBId" }) })
public class TableAB implements Serializable {

    private static final long serialVersionUID = 6360131240770014903L;

    @Id
    @ManyToOne(optional = false)
    @JoinColumn(name = "tableAId", referencedColumnName = "tableAId")
    private TableAId tableAId;

    @Id
    @ManyToOne(optional = false)
    @JoinColumn(name = "catalogBId", referencedColumnName = "catalogBId")
    private CatalogBId catalogBId;

这给了我一个错误:

Caused by: java.lang.IllegalArgumentException: This class [schema.TableAB ] does not define an IdClass

标签: javapostgresqlhibernate

解决方案


参考这个问题。接受的答案以及其他答案阐明了您要实现的目标。


推荐阅读