Java 埃宾:@OneToMany属于同一个实体

Java 埃宾:@OneToMany属于同一个实体,java,sql,jpa,playframework,one-to-many,Java,Sql,Jpa,Playframework,One To Many,我有以下场景,用户可以在活动中进行预订 用户想要预订一个活动(例如买一本书可以打八折)。我希望预订表如下所示:|id | user_id | campaign_id| 用户可以进行许多预订。 活动可以由许多用户保留。 预订将包含哪些用户预订了哪些活动 User.java @Entity public class User extends Model { @Id public Long id; public String username; public Strin

我有以下场景,用户可以在活动中进行预订

用户想要预订一个活动(例如买一本书可以打八折)。我希望预订表如下所示:|id | user_id | campaign_id|

用户可以进行许多预订。 活动可以由许多用户保留。 预订将包含哪些用户预订了哪些活动

User.java

@Entity
public class User extends Model {
    @Id
    public Long id;
    public String username;
    public String password;
    @OneToMany(cascade = CascadeType.PERSIST)
    public List<Reservation> reservations;
}
@Entity
public class User extends Model {
    @Id
    public Long id;
    public String username;
    public String password;
    @OneToMany(cascade = CascadeType.PERSIST,mappedBy="user")
    public List<Reservation> reservations;
}
这怎么不起作用

编辑:
我有一个带有ID和用户标识的预订表,但是没有ActudioID

< P>你可以考虑这样做,

User.java

@Entity
public class User extends Model {
    @Id
    public Long id;
    public String username;
    public String password;
    @OneToMany(cascade = CascadeType.PERSIST)
    public List<Reservation> reservations;
}
@Entity
public class User extends Model {
    @Id
    public Long id;
    public String username;
    public String password;
    @OneToMany(cascade = CascadeType.PERSIST,mappedBy="user")
    public List<Reservation> reservations;
}

你能把日志寄出去吗?可能是因为您的表预订中没有活动id,另一件事是,用户可以像这样为同一活动进行N次预订,用户:a活动:B,用户a对活动B进行预订,1 | a | B,如果他在1秒钟后尝试在同一个活动中进行另一次预订,他可以这样做,并且该预订将作为n | A | B发送给DB,这种行为适合您的场景吗?我知道是一天一次但是。。。只是让你想一想。
@Entity
public class Campaign extends Model {
    @Id
    public Long id;
    public String name;
    @OneToMany(cascade = CascadeType.PERSIST,mappedBy="campaign")
    public List<Reservation> reservations;
}
@Entity
public class Reservation extends Model {
    @Id
    public Long id;
    @ManyToOne
    public User user;
    @ManyToOne
    public Campaign campaign;
}