Java 删除-多个实体-实体仍然存在
我刚进入Hibernate,我已经开始做一个小项目。 我想测试添加和删除的所有类型的关系。 我不了解如何管理删除。。。对许多人来说,这似乎效果不错 我使用H2数据库 我有很多关系: 工作有0个或多个步骤,因此:最后是java和sql 我已经创建了一些实体,然后我只想从数据库中删除一个工作 细节 我创建了一个Junit进行测试,并显示了我的数据库:Java 删除-多个实体-实体仍然存在,java,hibernate,h2,Java,Hibernate,H2,我刚进入Hibernate,我已经开始做一个小项目。 我想测试添加和删除的所有类型的关系。 我不了解如何管理删除。。。对许多人来说,这似乎效果不错 我使用H2数据库 我有很多关系: 工作有0个或多个步骤,因此:最后是java和sql 我已经创建了一些实体,然后我只想从数据库中删除一个工作 细节 我创建了一个Junit进行测试,并显示了我的数据库: - save new work : "workOne" - save new work : "workTwo" - save new file : "
- save new work : "workOne"
- save new work : "workTwo"
- save new file : "fileone"
- save new step : "stepOne"
- stepOne.setWork(workOne)
- save new step : "stepTwo"
- stepOne.setWork(workOne)
- stepOne.setFile(fileOne)
要保存:
entityManager.getTransaction().begin();
entityManager.save(object);
entityManager.getTransaction().commit();
在数据库上按sql请求显示>>>确定所有我的实体都以良好的关联显示:
workOne - ID = 10
workTwo - ID = 11
fileOne - ID = 20
stepOne - ID = 40 / ID_WORK = 10 / ID_DOS = null
stepTwo - ID = 41 / ID_WORK = 11 / ID_DOS = 20
现在我想测试删除同一测试中的工作
// Remove a work
entityManager.getTransaction().begin();
entityManager.remove(workOne);
entityManager.getTransaction().commit();
// Display BDD
>> The workOne has not been deleted from database ... (no hibernate delete on logs)
我希望:
修井10将被删除
第一步也是。。。因为我们不能没有工作就迈出一步
谢谢
爪哇:
h2.sql:
你的@OneToMany工作和步骤之间的关系在哪里?这是一种单向关系。我只需要通过编辑步骤添加关系。
@Entity
@Table(name = "T_WORK")
public class Work {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id = 0L;
@Column(name = "LABEL")
String label;
@Entity
@Table(name = "T_STEP")
public class Step{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id = 0L;
@ManyToOne(cascade = {CascadeType.ALL })
@JoinColumn(name = "ID_WORK")
Work work;
@OneToOne(cascade = {CascadeType.ALL })
@JoinColumn(name = "ID_FILE")
File file;
@Column(name = "LABEL")
private String label;
@Column(name = "STATUS")
private String status;
create table T_WORK (
ID number(10) not null,
LABEL varchar2(64) not null,
constraint PK_WORK primary key (ID)
);
create table T_STEP (
ID number(10) not null,
ID_WORK number(10) not null,
ID_FILE number(10),
LABEL varchar2(64) not null,
STATUS varchar2(64),
constraint PK_STEP primary key (ID),
CONSTRAINT FK_STEPS_WORK FOREIGN KEY (ID_TRA) REFERENCES T_WORK(ID),
CONSTRAINT FK_STEP_FILE FOREIGN KEY (ID_DOS) REFERENCES T_FILE(ID)
);