我创建了PromoCode
表格如下:
PromoCode
表:
@Entity
@Table(name = "PromoCode", uniqueConstraints = {
@UniqueConstraint(columnNames = "promocode_name", name = "UK_PromoCode_PromocodeName") })
public class PromoCode {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String promocode_name;
private String description;
@Type(type = "text")
private String terms_and_conditions;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<User> user;
private Date creation_date;
private Date end_date;
private String promotion_type;
private int uses;
private float discount;
private int count;
private boolean enable;
这会创建另一个表promo_code_user
,其中包含字段promo_code_id
和user_userid
user_userid
为Unique
。
我希望多次添加相同的userid
,因为如果PromoCode
大于1,则根据我的uses
表格。
但我无法添加相同的userid
多用户ID,因为它unique
表中的promo_code_user
。
还有其他方法可以为特定的userid
代码添加多个相同的PromoCode
。
我还尝试使用代码来过滤promocode
:
List<PromoCode> deleteList = new ArrayList<>();
List<PromoCode> promoCodeList = bicycleService.getAcivatedPromo();
System.out.println("List is : " + promoCodeList);
int currentUses = 0;
// filter the promo codes
if (promoCodeList != null && !promoCodeList.isEmpty()) {
for (PromoCode promoCode : promoCodeList) {
final int uses = promoCode.getUses();
List<User> userSet = promoCode.getUser();
for (User user : userSet) {
if (user.equals(bikeuser)) {
currentUses++;
if (uses >= currentUses) {
deleteList.add(promoCode);
}
}
}
}
promoCodeList.removeAll(deleteList);
return promoCodeList;
}
如果有人建议其他设计对我很有帮助。
谢谢