Metode ini harus menghapus semua iklan di seseorang dengan id-nya. itu tidak memberikan kesalahan, saya tidak mengerti bagaimana membuat debug untuk memeriksa apa yang salah.

 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();    
    }

Orang

@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<>();

Iklan

    @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
Evg 10 Maret 2020, 15:54

1 menjawab

Jawaban Terbaik

Anda hanya perlu menulis

query.executeUpdate(); 

Setelah

query.setParameter("id", id);
0
Evg 19 Maret 2020, 10:19