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 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图