Hibernate JPA单向一对多协会“;引用[entity]的外键的列号错误;

Hibernate JPA单向一对多协会“;引用[entity]的外键的列号错误;,hibernate,jakarta-ee,jpa,foreign-keys,one-to-many,Hibernate,Jakarta Ee,Jpa,Foreign Keys,One To Many,我有两张桌子: 工作表: userId-主键,外键 组织-主键、外键 单元-主键、外键 //其他非相关字段(房间、状态等) 用户表: 用户ID-主键 //其他非相关字段(性别、电子邮件等) 如上表所示,我有很多用户,每个用户都有一个工作区。用户没有对工作场所的引用(阅读后应该是这样),但工作场所有对用户的引用。我不能改变数据库的设计,所以我必须让它像这样工作。因此,为了映射这一点,我在workplace实体中有以下代码: @OneToMany//(cascade=CascadeType.

我有两张桌子:

工作表:

  • userId-主键,外键
  • 组织-主键、外键
  • 单元-主键、外键
  • //其他非相关字段(房间、状态等)
用户表:

  • 用户ID-主键
  • //其他非相关字段(性别、电子邮件等)
如上表所示,我有很多用户,每个用户都有一个工作区。用户没有对工作场所的引用(阅读后应该是这样),但工作场所有对用户的引用。我不能改变数据库的设计,所以我必须让它像这样工作。因此,为了映射这一点,我在workplace实体中有以下代码:

@OneToMany//(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="userId")
private Set<User> users;
我推测程序需要引用WorkPlace实体的主键,但我不明白为什么或者如何解决这个问题。我错过了什么

提前谢谢你的帮助

有关实体,请参见关于如何使用它的示例


由于您没有显示实体的所有部分和相应的数据库结构,我可能只能猜测您没有使用正确的数据库列进行映射-
userId
真的是表中包含用户ID的列的名称吗?

什么是UsersWork以及它与用户和工作场所的关系如何?哦,对不起,我不清楚。UsersWork是工作场所的实体。我不确定我是否完全理解你的意思。一个用户实体只有一个简单的主键(userId),这是从WorkPlace表引用的字段(UsersWork实体-很抱歉混淆)。是的,它是“悲哀的”。。。我只使用本机查询,不使用关联。@Tsohun:在用户实体中有多对一映射吗?提供代码,否则我们帮不上忙…我没有。这只适用于双向关联,不是吗?不管怎样,我似乎已经设法用本机查询解决了这个问题,所以感谢您抽出时间!另外,很抱歉回复太晚,但我们的时区似乎有很大的差异,我大约在你回复的时候上床睡觉。
"A Foreign key refering hu.danubius.doclams.be.entity.org.UsersWork from hu.danubius.doclams.be.entity.org.User has the wrong number of column. should be 3"