Java 从JPA实体中删除元素时,从一对多关系中删除元素
我将JPA(Hibernate)与以下具有一对多关系的实体类一起使用 当我向列表中添加元素,然后持久化组织实体时,它会将新元素添加到proyects表中,但是当我从列表中删除元素时,持久化(或合并)时不会发生任何事情,我希望从数据库中删除这些元素 我还在OneToMany注释中尝试了orphanRemoving=true,但它不起作用Java 从JPA实体中删除元素时,从一对多关系中删除元素,java,database,hibernate,jpa,Java,Database,Hibernate,Jpa,我将JPA(Hibernate)与以下具有一对多关系的实体类一起使用 当我向列表中添加元素,然后持久化组织实体时,它会将新元素添加到proyects表中,但是当我从列表中删除元素时,持久化(或合并)时不会发生任何事情,我希望从数据库中删除这些元素 我还在OneToMany注释中尝试了orphanRemoving=true,但它不起作用 @Entity public class Organization { @Id @GeneratedValue public
@Entity
public class Organization {
@Id
@GeneratedValue
public long internalId;
@Basic
@Column(nullable = false, length = 100)
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "organization")
private List<Proyect> proyects;
// Getters and Setters
}
@实体
公营班级组织{
@身份证
@生成值
公共长内ID;
@基本的
@列(nullable=false,长度=100)
私有字符串名称;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“组织”)
私有列表项目;
//接球手和接球手
}
您需要将Proyect.organization
设置为null并更新该实体,因为此属性负责数据库条目(Proyect
在这种情况下是拥有方)。这不起作用,在数据库中,Proyect表用等于的外键更新null@greuze将外键设置为null是从组织中删除项目时需要的,不是吗?如果不删除外键,项目仍然是组织的一部分。项目只是组织的一部分(一个项目不能在两个组织中),因此我希望当我从组织的项目列表中删除项目时,它会从数据库中删除too@greuze我懂了。尝试将Hibernate注释@Cascade(CascadeType.DELETE\u ORPHAN)
添加到列表定义中。找到解决方案了吗?