Я использую следующие в JPA:связанные удалить @OneToOne автоматически в JPA
@Entity
class ParentClass {
@Id
@GeneratedValue
private long id;
...
@OneToOne(cascade = { cascade = { CascadeType.ALL },
mappedBy = "parentClass")
ChildClass child;
..
}
@Entity
class ChildClass {
@OneToOne
ParentClass parentClass;
}
Если я делаю запрос как CreateQuery («DELETE FROM ParentClass ПК»), мой ребенок класс не удаляется автоматически.
Можно ли это сделать с помощью JPA-2.0? (Я работаю с отношениями @OneToMany).
+1 Я считаю, что это правильный ответ. Я думаю, что ON DELETE CASCADE может привести к некоторым небольшим проблемам, потому что провайдер JPA не подберет это. Поэтому, если позже вы решите снова называть что-то вроде em.persist (child), JPA подумает, что оно уже сохраняется и т. Д. Кроме того, ребенок не будет удален из кеша и т. Д. –
Спасибо, я не очень нужен сделать «Bulk» Query, поэтому я заменил его простым remove(). Я не пытался делать ССЫЛКИ ... CASCADE, поскольку я ожидаю, что это зависит от СУБД и не является частью стандартного SQL? – Roalt