2013-06-01 50 views
0

我有以下场景,用户可以在广告系列上预订。Ebean:@OneToMany到同一个实体

例如,用户希望保留一个活动(例如,在书上八折)。我希望预订表如下所示:| 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; 
} 

Campaign.java

@Entity 
public class Campaign extends Model { 
    @Id 
    public Long id; 
    public String name; 
    @OneToMany(cascade = CascadeType.PERSIST) 
    public List<Reservation> reservations; 
} 

Reservations.java

@Entity 
public class Reservation extends Model { 
    @Id 
    public Long id; 
} 

如何走到这一步不工作?

编辑: 我得到一个具有ID和user_ID的,但没有CAMPAIGN_ID

+0

你能发表日志吗?也许这是因为您的表格预订中没有campaign_id,而另一个与用户站在一起的东西可能会为此类广告系列制作N预订,例如:用户:广告系列:B,用户A对广告系列B进行预订,1 | A | B,如果他在1秒钟之后尝试再次对同一活动进行预约,他可以这样做,并将以n | A | B的身份进入数据库,这种行为与您的方案是否一致?我知道是设置为oneToMany,但是......只是为了让你考虑一下。 – JosephChilberry

回答

0

你可以考虑做这样一个预约表,

User.java

@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; 
} 

活动.java

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

Reservation.java

@Entity 
public class Reservation extends Model { 
    @Id 
    public Long id; 
    @ManyToOne 
    public User user; 
    @ManyToOne 
    public Campaign campaign; 
} 
相关问题