Можно ли удалить одну строку с помощью репозитория JPA, где строки не являются уникальными? - PullRequest
0 голосов
/ 28 апреля 2020

Это плохой дизайн базы данных. Таблица выглядит следующим образом, где оба столбца являются внешними ключами. Дизайн был создан кем-то другим. Я знаю, что это нарушение и не должно быть сделано. Я буду менять сущности.

+---------+---------------+
| cart_id |    item_id    |
+---------+---------------+
|       1 |             1 |
|       1 |             1 |
|       1 |             1 |
|       2 |             1 |
|       3 |             1 |
|       3 |             3 |
+---------+---------------+

Перед изменением я просто хочу знать, возможно ли удалить одну строку в этом случае, когда результатов совпадения много.

    @Query(value = "delete FROM cart_items where cart_id =:cartId AND item_id =:itemId", nativeQuery = true)
    @Transactional
    int deleteCartItem(long cartId, long itemId);

Для указанного выше запроса будут удалены несколько записей, я просто хочу удалить одну или ни одной.

1 Ответ

2 голосов
/ 28 апреля 2020

Вы можете попробовать использовать LIMIT предложение SQL. Для вашего случая вы можете использовать LIMIT 1 в конце вашего запроса. Будет удалена первая строка вашего набора результатов.

Надеюсь, это поможет!

...