Java 在没有单独联接表的情况下休眠@OneToMany

Java 在没有单独联接表的情况下休眠@OneToMany,java,hibernate,jpa,join,entity-relationship,Java,Hibernate,Jpa,Join,Entity Relationship,考虑以下数据库架构: create table UserGroup ( id int not null auto_increment, name varchar(200), primary key(id)); create table User ( id int not null auto_increment, name varchar(200), groupId int not null, primary key(id)); User.groupId=UserGroup.id

考虑以下数据库架构:

create table UserGroup ( id int not null auto_increment, name varchar(200),
    primary key(id));
create table User ( id int not null auto_increment, name varchar(200),
    groupId int not null, primary key(id));
User.groupId=UserGroup.id,因此一个用户只能是一个组的成员,但一个用户组可以存在多个用户。很好,到目前为止,让我们在Hibernate中创建实体。以下是
用户

@Entity
@Table(name = "User")
public class User {

    @Id
    @Column(name="id", nullable = false)
    private Integer id;

    @Column(name="name", length = 200, nullable = true)
    private String name;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "groupId", nullable = false, insertable=false, updatable=false)
    @ForeignKey(name="FK_GroupId")
    private UserGroup userGroup;

    /* Getters, Setters, toString, equals & hashCode */
}
下面是
用户组

@Entity
@Table(name = "UserGroup")
public class UserGroup {

    @Id
    @Column(name="id", nullable = false)
    private Integer id;

    @Column(name="name", length = 200, nullable = true)
    private String name;

    @OneToMany(fetch=FetchType.EAGER)
    private List<User> users;

    /* Getters, Setters, toString, equals & hashCode */
}
@实体
@表(name=“UserGroup”)
公共类用户组{
@身份证
@列(name=“id”,nullable=false)
私有整数id;
@列(name=“name”,长度=200,可空=true)
私有字符串名称;
@OneToMany(fetch=FetchType.EAGER)
私人名单用户;
/*getter、setter、toString、equals和hashCode*/
}

现在我将得到一个错误
“表mydb.usergroup\u user”不存在”
,因为它需要一个联接表。我的数据结构是“一成不变的”,因为它与该应用程序将取代的其他应用程序具有互操作性,所以我不会创建联接表。而且,不应该需要它。我如何制作一个
用户列表
,它只是一个用户列表,其中
User.groupId==UserGroup.Id

我想你需要
@OneToMany
注释中的
mappedBy=“UserGroup”

在我的例子中,我添加了mappedBy,但它仍然不起作用。还有什么我需要做的吗?尝试添加一个
@JoinColumn(name=”“)