【问题标题】:how to delete a row in the database while using hibernate?使用hibernate时如何删除数据库中的一行?
【发布时间】:2013-12-13 14:40:15
【问题描述】:

我创建了一个如下的类

public class User {
@OneToMany(cascade={CascadeType.ALL)
@JoinColumn(name="ID")
private List<Address> userAddresses;
....
....
}

public class userAddress {
@ManyToOne
@JoinColumn(name="ID")
private User usr;
.....
....
}

如果我删除 User 表中的一行,它会自动删除 userAddress 中的行。如果没有,请告诉我声明属性自动删除的方式。我听说过级联的事情,但我不知道声明它的正确语法。

【问题讨论】:

  • 查找orhpanRemoval 属性。

标签: mysql hibernate


【解决方案1】:

尝试像这样映射它:

public class User {
      @OneToMany(mappedBy="usr", cascade={CascadeType.ALL}, orphanRemoval="true")
      private List<Address> userAddresses;
}            

public class userAddress {
      @ManyToOne
      @JoinColumn(name="ID")
      private User usr;
}

【讨论】:

  • 如果我先删除 UserAddress 记录,我可以删除用户记录。否则不允许直接删除用户表中的记录。
  • 那你想做什么?您希望在删除用户记录时删除 userAdresses?
  • 是的,我希望在删除用户记录时删除 userAdresses。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-26
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2016-03-10
相关资源
最近更新 更多