您好,我在映射实体时遇到问题。我正在使用 JPA2 和 Hibernate 实现。我得到带有 @ManyToMany 注释的表
http://img204.imageshack.us/img204/7558/przykladd.png http://img204.imageshack.us/img204/7558/przykladd.png
我将其映射为:
@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; ...}
现在,当我从 Employee 中删除记录时,我希望从表 proj_emp 中进行级联删除,但表 Project 中的任何内容都无法删除。
获得它的最佳方式是什么?
谢谢
大卫
您可以将 @ManyToMany 拆分为 @OneToMany-ManyToOne 并设置级联样式,如图所示here https://stackoverflow.com/questions/1212058/1252317#1252317虽然问题使用了Hibernate的session,但是你可以使用JPA EntityManager。或者使用新的 JPA 功能@ElementCollection http://download.oracle.com/javaee/6/api/javax/persistence/ElementCollection.html(仅限 JPA 2)映射您加入的班级。看here https://stackoverflow.com/questions/1153409/1168740#1168740如何。只需将 Hibernate 的 @CollectionOfElements 替换为 @ElementCollection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)