Не удалось удалить запрос JPA.

Ну, я не понимаю, почему мой код не работает. Может кто-нибудь, пожалуйста, взгляните. Он не содержит сообщений об ошибках, но Клиент не будет удален. Другие методы работают хорошо (getCustomerbyId, getAllCustomers и так) Спасибо

public void deleteCustomerById(long id) {
        EntityManager em = null;
        try {
            em = JpaUtil.getFactory().createEntityManager();
            em.getTransaction().begin();
            Query query = em.createQuery("Delete  from Customer c where c.id = :id");
            query.setParameter("id", id);
            em.getTransaction().commit();
        } finally {
            JpaUtil.closeQuietly(em);
        }
    }

java,sql,jpa,entitymanager,

1

Ответов: 3


2

Вам необходимо выполнить запросы для SQL-запросов в базу данных; в этом случае вы захотите использовать executeUpdate () и получить измененный счетчик строк, чтобы убедиться, что что-то было удалено или нет.

        em.getTransaction().begin();
        Query query = em.createQuery("Delete  from Customer c where c.id = :id");
        query.setParameter("id", id);
        int rows = query.executeUpdate();
        em.getTransaction().commit();

2

Вы создаете запрос, но не выполняете его. Вы должны добавить

query.executeUpdate();

перед совершением


0

Используйте jpa APis find (Customer.class), чтобы найти объект клиента, затем используйте romove (объект)

Java, SQL, JPA, EntityManager,
Похожие вопросы