Skip to content

Commit 48f2e42

Browse files
committed
add tests when delete pupil
1 parent 31c495b commit 48f2e42

File tree

6 files changed

+50
-8
lines changed

6 files changed

+50
-8
lines changed

readme.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,5 @@ see dir: `/src/test/java/org/example/inheritance/joined`
7373

7474
#### OneToMany by joinColumn
7575

76-
see dir: `/src/test/java/org/example/entity/relations/OneToMany/JoinColumn`
76+
* Without cascade:
77+
see dir: `/src/test/java/org/example/entity/relations/OneToMany/JoinColumn/NotCascade`

src/main/java/org/example/entity/relations/OneToMany/JoinColumn/ClassRoom.java renamed to src/main/java/org/example/entity/relations/OneToMany/JoinColumn/NotCascade/ClassRoom.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.example.entity.relations.OneToMany.JoinColumn;
1+
package org.example.entity.relations.OneToMany.JoinColumn.NotCascade;
22

33
import javax.persistence.*;
44
import java.util.Collections;

src/main/java/org/example/entity/relations/OneToMany/JoinColumn/Pupil.java renamed to src/main/java/org/example/entity/relations/OneToMany/JoinColumn/NotCascade/Pupil.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.example.entity.relations.OneToMany.JoinColumn;
1+
package org.example.entity.relations.OneToMany.JoinColumn.NotCascade;
22

33
import javax.persistence.*;
44

src/main/resources/hibernate.cfg.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
<mapping class="org.example.entity.inheritance.joined.UserJoined" />
4343

4444
<!-- relations joinColumn -->
45-
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.ClassRoom" />
46-
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.Pupil" />
45+
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.NotCascade.ClassRoom" />
46+
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.NotCascade.Pupil" />
4747

4848
</session-factory>
4949
</hibernate-configuration>

src/test/java/org/example/entity/relations/OneToMany/JoinColumn/ClassRoomAndPupilTest.java renamed to src/test/java/org/example/entity/relations/OneToMany/JoinColumn/NotCascade/ClassRoomAndPupilTest.java

+42-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.example.entity.relations.OneToMany.JoinColumn;
1+
package org.example.entity.relations.OneToMany.JoinColumn.NotCascade;
22

33
import org.example.AbstractHibernateTest;
44
import org.junit.Test;
@@ -169,6 +169,47 @@ public void save_WhenClassRoomWithPupil_WhenSaveAllEntity_WhenDeleteParent() {
169169
flushAndClearSession();
170170
}
171171

172+
// cannot delete classRoom - not set cascade
173+
@Test
174+
public void save_WhenClassRoomWithPupil_WhenSaveAllEntity_WhenDeleteOnePupil() {
175+
ClassRoom classRoom = new ClassRoom(12, "MyClassRoom");
176+
177+
Pupil pupil1 = new Pupil("John", 20);
178+
pupil1.setClassRoom(classRoom);
179+
Pupil pupil2 = new Pupil("Mike", 21);
180+
pupil2.setClassRoom(classRoom);
181+
182+
List<Pupil> pupils = new ArrayList<>();
183+
pupils.add(pupil1);
184+
pupils.add(pupil2);
185+
186+
classRoom.setPupils(pupils);
187+
188+
session.persist(classRoom);
189+
session.persist(pupil1);
190+
session.persist(pupil2);
191+
flushAndClearSession();
192+
193+
classRoom.getPupils().remove(0);
194+
flushAndClearSession();
195+
196+
// yes - delete from collection :)
197+
List<Pupil> pupilsAfterDelete = classRoom.getPupils();
198+
assertThat(pupilsAfterDelete.size(), equalTo(1));
199+
200+
// check count pupil from DB
201+
// not change - because not set cascade. add if want to change count pupil:
202+
// @OneToMany(mappedBy = "classRoom", cascade = CascadeType.ALL)
203+
List<Pupil> allListPupilFromDb = getAllListPupil();
204+
assertThat(allListPupilFromDb.size(), equalTo(2));
205+
206+
printStructureTable("class_room");
207+
showContentTable("class_room");
208+
209+
printStructureTable("pupil");
210+
showContentTable("pupil");
211+
}
212+
172213
@Test
173214
public void save_WhenGetClassRoom() {
174215
ClassRoom classRoom = new ClassRoom(12, "MyClassRoom");

src/test/resources/hibernate.cfg.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
<mapping class="org.example.entity.inheritance.joined.UserJoined" />
3939

4040
<!-- relations joinColumn -->
41-
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.ClassRoom" />
42-
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.Pupil" />
41+
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.NotCascade.ClassRoom" />
42+
<mapping class="org.example.entity.relations.OneToMany.JoinColumn.NotCascade.Pupil" />
4343

4444
</session-factory>
4545
</hibernate-configuration>

0 commit comments

Comments
 (0)