2013-06-01 74 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; 
} 
相關問題