Programming Java

JPA

Cart

public interface CartRepository extends CrudRepository<Cart, Integer> {
    @Modifying
    @Procedure
    void saveCart(String cartCode, long productId, short quantity);
    @Transactional
    @Modifying
    @Query(value = "UPDATE Cart SET Quantity = :quantity WHERE CartId = :id", nativeQuery = true)
    void edit(int id, short quantity);
}

Procedure

CREATE PROC SaveCart(
    @CartCode CHAR(32),
    @ProductId BIGINT,
    @Quantity SMALLINT
)
AS
    IF EXISTS(SELECT * FROM Cart WHERE CartCode = @CartCode AND ProductId = @ProductId)
        UPDATE Cart SET Quantity += @Quantity WHERE CartCode = @CartCode AND ProductId = @ProductId;
    ELSE
        INSERT INTO Cart (CartCode, ProductId, Quantity) VALUES (@CartCode, @ProductId, @Quantity);
GO