Spring Boot JPA: невозможно добавить несколько продуктов в CART - дубликат ошибка входа для уникального ограниченияJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot JPA: невозможно добавить несколько продуктов в CART - дубликат ошибка входа для уникального ограничения

Сообщение Anonymous »

Я строю приложение электронной коммерции, используя Spring Boot и JPA. Я сталкиваюсь с проблемой, когда пользователи не могут добавить несколько продуктов в свою корзину. Первый продукт добавляет успешно, но попытка добавить второй продукт приводит к уникальному нарушению ограничений. Как я могу его решить?@Entity
@Table(name = "users")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class AppUser implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
@Column(unique = true)
private String username;
private String firstname;
@Column(unique = true)
private String email;
private String phone;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
private String address;
private Date createdAt;

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List carts = new ArrayList();
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List
products = new ArrayList();
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List orders = new ArrayList();

@Entity
@Table(name = "carts")
public class Cart {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private long productId;
private int quantity;
private Date createdAt;

@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
@JsonIgnore
private AppUser user;
}
< /code>
my cart service < /p>
public Cart addProductToCart(Cart newCart, AppUser user) {
Optional existingCart = cartRepo.findCartByIdAndUser(newCart.getProductId(), user);
int productInventoryCount = productRepo.findById(newCart.getProductId()).get().getInventoryCount();

if (existingCart.isPresent()) {
Cart cart = existingCart.get();

if ((cart.getQuantity() + newCart.getQuantity()) > productInventoryCount) {
throw new InsufficientInventoryException("Insufficient inventory for the requested quantity.");
}

cart.setQuantity(cart.getQuantity() + newCart.getQuantity());

return cartRepo.save(cart);
}
if (newCart.getQuantity() > productInventoryCount) {
throw new InsufficientInventoryException("Insufficient inventory for the requested quantity.");
}

newCart.setCreatedAt(new Date());
return cartRepo.save(newCart);
}
< /code>
Это ошибка, которую я получаю: < /p>
2025-02-14t19:49:24.717+04:00 Ошибка 35347 --- [e- Коммерческий] [NIO-8080-EXEC-3] O.A.C.C.C.C. [. [. [/]. .dao.dataintegrityviolationException: не удалось выполнить оператор [дубликат «1» для ключа 'carts.uk64t7ox312pqal3p7fg9o503c2'] [вставьте в корзины (created_at, product_id, количество, пользовательскую, id) значения (? ]; SQL [вставьте в корзины (created_at, product_id, количество, user_id, id) значения (?,?,?,?,?)]; Ограничение [carts.uk64t7ox312pqal3p7fg9o503c2]] с основной причиной < /p>
Java.sql.sqlintegrityConstraintviolationException: Duplicate '1' for Key 'carts.uk64t7ox312pqal3p7fg9o503c2' kards.uk64t7ox312pqal3p7fg9o503c2 '< /pr /pr /pi.uk64t7ox312pqal3p7fg9o503c2' < /pi.uk64t7ox312pqal3p7fg9o503c2 '< /pr /pr /pr /pr /puard.uk64t7ox312pqal3p7fg9o' AI сообщает, что индекс удаления такого:
Альтер -таблицы Carts Drop Index uk64t7ox312pqal3p7fg9o503c2;
Но когда я пытаюсь удалить его, я получаю:
Код ошибки: 1553. Невозможно отказаться от индекса 'uk64t7ox312pqal3p7fg9o503c2': необходимо в ограничении внешнего ключа < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... ntry-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»