Метод должен удалить все объявления в человеке по его идентификатору. это не дает ошибок, я не понимаю, как сделать отладку, чтобы проверить, что не так.
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;