Как выполнить массовое удаление в JPA при использовании коллекций элементов?

У меня проблемы с разработкой того, как выполнить массовое удаление объекта Person с помощью JPA, когда объекты Person содержат данные, хранящиеся с использованием @ElementCollection . Мы будем очень благодарны за любые идеи о том, как это сделать.

@Entity
@Table(name="at_person")
public class Person implements Comparable<Person> {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id")
    private long id = 0;

    @Column(name="name", nullable = true, length = 128)
    private String name = "";

    @ElementCollection
    @Column(name = "email")
    @CollectionTable(name = "person_email", joinColumns = @JoinColumn(name = "person_id"))
    private Set<String> email = new HashSet<String>();
}

В данный момент я делаю следующее, и это не удается с ошибкой ограничения внешнего ключа:

Query query=em.createQuery("DELETE FROM Person");

Вызвано: java.sql.SQLException: нарушение ограничения целостности : внешний ключ нет действия; FKCEC6E942485388AB table: PERSON_EMAIL

Если это может быть чистая аннотация JPA, а не аннотация Hibernate, это будет бонусом!

15
задан Pascal Thivent 11 October 2010 в 03:10
поделиться