не удаляет с запросом jpql - PullRequest
1 голос
/ 10 марта 2020

Метод должен удалить все объявления в человеке по его идентификатору. это не дает ошибок, я не понимаю, как сделать отладку, чтобы проверить, что не так.

 public void deleteAllAdByPersonById(int id) {
        EntityManager em = FACTORY.createEntityManager();
        EntityTransaction transaction = em.getTransaction();
        transaction.begin();
        Query query = em.createQuery("DELETE  FROM Ad a WHERE a.person.id = :id");
        query.setParameter("id", id);
        transaction.commit();
        em.close();    
    }

Person

@Entity
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "person_id")
    private int id;    
    @NotEmpty
    @NotNull(message = "Name cannot be null")
    private String name;

    @OneToMany(mappedBy = "person", fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
    private Set<Ad> ads = new HashSet<>();

Объявление

    @Entity
    public class Ad {
 @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ad_id")
    private int id;
       ...
        @ManyToOne
        @JoinColumn(name = "person_fk_id")
        private Person person;

1 Ответ

0 голосов
/ 19 марта 2020

Вы просто должны были написать

query.executeUpdate(); 

после

query.setParameter("id", id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...