在一行中添加多个相同的主键

时间:2017-12-27 15:08:54

标签: mysql spring jpa

我创建了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_iduser_userid user_useridUnique。 我希望多次添加相同的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;
    }

如果有人建议其他设计对我很有帮助。

谢谢

0 个答案:

没有答案