Daw*_*wid 5 annotations hibernate cascade cascading-deletes jpa-2.0
您好,我在映射实体时遇到问题。我正在使用 JPA2 和 Hibernate 实现。我得到带有 @ManyToMany 注释的表
\n\nhttp://img204.imageshack.us/img204/7558/przykladd.png
\n\n我将其映射为:
\n\n@Entity\n@Table("employee")\nclass Employee {\n @Id\n \xc2\xa0\xc2\xa0@GeneratedValue(strategy = GenerationType.IDENTITY)\n \xc2\xa0\xc2\xa0private Integer id;\n\n\xc2\xa0\xc2\xa0@Column\n\xc2\xa0\xc2\xa0private String name;\xc2\xa0\n\n \xc2\xa0@ManyToMany\n\xc2\xa0\xc2\xa0@JoinTable(name = "proj_emp",\n\xc2\xa0 \xc2\xa0joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"),\n\xc2\xa0 inverseJoinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id"),\xc2\xa0\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0uniqueConstraints = @UniqueConstraint(columnNames = {"employee_id", "project_id"}))\xc2\xa0\n\xc2\xa0\xc2\xa0private List<Project> projects;\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0...}\n\n\n@Entity\n@Table("project")\nclass Project {\n\xc2\xa0\xc2\xa0\xc2\xa0@Id\n\xc2\xa0\xc2\xa0\xc2\xa0@GeneratedValue(strategy = GenerationType.IDENTITY)\n\xc2\xa0\xc2\xa0\xc2\xa0private Integer id;\xc2\xa0\n\n\xc2\xa0\xc2\xa0\xc2\xa0@Column\xc2\xa0\xc2\xa0\n \xc2\xa0\xc2\xa0private String name;\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\n\xc2\xa0\xc2\xa0\xc2\xa0@Column\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\n\xc2\xa0\xc2\xa0\xc2\xa0private Integer budget;\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\n\n\xc2\xa0\xc2\xa0\xc2\xa0@ManyToMany(mappedBy = "projects")\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\n\xc2\xa0\xc2\xa0\xc2\xa0private List<Employee> employees;\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0...}\nRun Code Online (Sandbox Code Playgroud)\n\n现在,当我从 Employee 中删除记录时,我希望从表 proj_emp 中进行级联删除,但表 Project 中的任何内容都无法删除。
\n\n获得它的最佳方式是什么?
\n\n谢谢\n大卫
\n您可以将 @ManyToMany 拆分为 @OneToMany-ManyToOne 并设置级联样式,如下所示。虽然问题使用 Hibernate 的会话,但您可以使用 JPA EntityManager。或者使用新的 JPA 功能@ElementCollection(仅限 JPA 2)来映射您加入的类。请参阅此处如何操作。只需将 Hibernate 的 @CollectionOfElements 替换为 @ElementCollection
| 归档时间: |
|
| 查看次数: |
13075 次 |
| 最近记录: |