Peter Penzov
Peter Penzov

Reputation: 1658

Update/delete queries cannot be typed at

I want to execute this query:

        @Override
        public int deleteOldLogByDate(LocalDateTime created_at) throws Exception {

            String hql = "delete from " + Log.class.getName() + " e where e.created_at <= :created_at";
            TypedQuery<Log> query = entityManager.createQuery(hql, Log.class).setParameter("created_at", created_at);
            int records = query.executeUpdate();
            return records;
        }

But I get exception: java.lang.IllegalArgumentException: Update/delete queries cannot be typed at

Do you know how I can solve this issue?

Upvotes: 0

Views: 2069

Answers (1)

Simon Martinelli
Simon Martinelli

Reputation: 36103

Bulk queries like update and delete cannot be used in TypedQuery (as the error says).

You have to use:

    @Override
    public int deleteOldLogByDate(LocalDateTime created_at) throws Exception {

        String hql = "delete from " + Log.class.getName() + " e where e.created_at <= :created_at";
        Query query = entityManager.createQuery(hql).setParameter("created_at", created_at);
        int records = query.executeUpdate();
        return records;
    }

Upvotes: 1

Related Questions