Tag: 联接

Hibernate ManyToMany是否可以为非键列自连接? 获取mappingException

我有以下问题。 我有一个与其他用户实体有多对多关系的用户实体。 因此,我希望通过多种注释进行自我连接。 此关系基于整个系统中使用的现有表,因此我根本无法更改DB。 所以我们有2个表User(Id,ShortName)和UserLink(ParentId,ChildId)。 ID的注释分配给ShortName,但User和UserLink中的实际键是来自UserLink的ID和来自UserLink的ParentId和ChildId。 我试图从User实体处理以下方式: @Id @Column(name = “ShortName”) private String shortName; @Column(name = “Id”) private long id; @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = “UserLink”, joinColumns = { @JoinColumn(name = “ParentId”, referencedColumnName = “Id”) }, inverseJoinColumns = { @JoinColumn(name = “ChildId”, referencedColumnName = “Id”) }) private Collection children; 由于User实体中的键位于ShortName字段上,因此我必须将“Id”指定为引用的列名称param。 如果我不这样做,它将ShortName作为键,不会获取任何数据。 当我尝试按照上面显示的方式执行此操作时,我得到以下exception: […]