使用@JoinTable时如何删除所有表中的记录(使用Hibernate)

时间:2016-04-15 13:07:58

标签: java hibernate jpa orm mapping

我有一个名为News的班级。任何新闻都可以有很多Photo。这些是我的表

   news                   news_photo             photo
--------------      ----------------------     ------------
| id | title |      | id_news | id_photo |     | id | url |
--------------      ----------------------     ------------
  |                      |         |              |
  |----------------------|         |--------------|

这是我的班级News

@Entity    
@Table(name = "news")
public class News extends ElementoPersistente implements Serializable{  
    ...
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
    @JoinTable(name = "news_photo",
               joinColumns = { @JoinColumn(name = "id_news")},
               inverseJoinColumns = { @JoinColumn(name = "id_photo") }) 
    private List<photo> photos;
    ...
}

当我从List<photo> photos中删除对象然后保存对象News时,相对记录将从表news_photo中删除,但在表photo内没有删除任何内容}。 如何删除news_photophoto内的两个记录?

谢谢

0 个答案:

没有答案