New_programmer16 2016-08-01 01:00 采纳率: 100%
浏览 2036
已采纳

hibernate 级联删除注解写了不起作用

@SuppressWarnings("serial")
@Entity
@Table(name="user")
public class User extends BaseEntity {

/**
 * 用户名
 */
private String username;
/**
 * 密码
 */
private String password;

public User() {
    super();
}


private List<UserAddress> userAddresses;


//配置一对多
//cascade:为级联操作,里面有级联保存,级联删除等,all为所有 
//fetch:加载类型,有lazy和eager二种
//这个为manytoone中的对象名
@Cascade({CascadeType.SAVE_UPDATE,CascadeType.DELETE})
@OneToMany(fetch=FetchType.EAGER, mappedBy="user_user")
@BatchSize(size=10)
@OrderBy(clause="id asc")
public List<UserAddress> getUserAddresses() {
    return userAddresses;
}

public void setUserAddresses(List<UserAddress> userAddresses) {
    this.userAddresses = userAddresses;
}

/**
 * 简单admin对象
 * @param username 账号
 * @param password 密码
 * @param isAccountEnabled 是否启用
 */
public User(String username, String password) {
    super();
    this.username = username;
    this.password = password;
}

@Column(updatable = true, nullable = false)
public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

@Column(nullable = false)
public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

@Override
public String toString() {
    return "User [username=" + username + ", password=" + password
            + ", userAddresses=" + userAddresses + "]";
}

}

上面是我的实体类, @Cascade({CascadeType.SAVE_UPDATE,CascadeType.DELETE})这句写了并没有起作用,删除的时候还是提示有外键不能删除。这个是怎么回事

  • 写回答

3条回答 默认 最新

  • 果冻剑客 2016-08-01 03:17
    关注

    你要明白 hibernate 级联的意思,级联在我们表之间有外键关联的时候可以通过对象映射 以java 对象的形式展现给我们,
    比如一对多,多对多,等都可以用对象来表示出来。但是为了维护表中之间关系的稳定,级联只用于查,改,增,但是不用于 删除。
    因为删除会破坏表之间的关系。个人觉得级联用于查询的时候就比较方便,其他操作小心点,你会被坑的,(如果真的需要,请删除外键关联再操作)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试