Cascade löschen von join-Tabelle mit @ManyToMany-annotation
Hi ich hab ein problem mit der Zuordnung meiner Entitäten. Ich bin mit JPA2 und Hibernate-Implementierung. Ich habe Tabellen mit @ManyToMany annotation
http://img204.imageshack.us/img204/7558/przykladd.png
Ich abgebildet mit :
@Entity
@Table("employee")
class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String name;
@ManyToMany
@JoinTable(name = "proj_emp",
joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id"),
uniqueConstraints = @UniqueConstraint(columnNames = {"employee_id", "project_id"}))
private List<Project> projects; ...}
@Entity
@Table("project")
class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String name;
@Column
private Integer budget;
@ManyToMany(mappedBy = "projects")
private List<Employee> employees; ...}
Nun würde ich gerne eine Kaskade löschen aus der Tabelle proj_emp, wenn ich Datensätze löschen von Beschäftigten, aber nichts aus der Tabelle Projekt kann gelöscht werden.
Was ist der beste Weg zu bekommen?
Dank
Dawid
Du musst angemeldet sein, um einen Kommentar abzugeben.
Teilen Sie Ihre @ManyToMany in eine @OneToMany-ManyToOne und die Einrichtung eines cascading style wie gezeigt hier Obwohl die Frage Hibernate nutzt die session, die Sie verwenden können, JPA EntityManager. Oder nutzen Sie die neuen JPA-feature @ElementCollection (Nur JPA 2) ordnen Sie Ihre Klasse trat. Sehen hier wie. Ersetzen Sie einfach den Ruhezustand s @CollectionOfElements von @ElementCollection
cascade
heute?