Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/test/java/org/example/domain/Beschikking.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.example.domain;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "jw_beschikking")
public class Beschikking {

@Id
long id;

final String b;
@OneToMany(mappedBy = "beschikking", cascade = CascadeType.ALL)
private Set<ProductToegewezen> toegewezenProducten;

public Beschikking(String b) {
this.b = b;
}

public String b() {
return b;
}

public Set<ProductToegewezen> toegewezenProducten() {
return toegewezenProducten;
}
}
35 changes: 35 additions & 0 deletions src/test/java/org/example/domain/MeldingAanvangProduct.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.example.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "jw_melding_aanvang_product")
public class MeldingAanvangProduct {

@Id
long id;

final String map;

@ManyToOne(optional = false)
ProductToegewezen toegewezenProduct;

public MeldingAanvangProduct(String map) {
this.map = map;
}

public String map() {
return map;
}

public ProductToegewezen toegewezenProduct() {
return toegewezenProduct;
}

public void setToegewezenProduct(ProductToegewezen toegewezenProduct) {
this.toegewezenProduct = toegewezenProduct;
}
}
25 changes: 25 additions & 0 deletions src/test/java/org/example/domain/MutatieProduct.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.example.domain;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "jw_mutatie_product")
public class MutatieProduct {

@Id
long id;

final String aprod;

@ManyToOne(optional = false)
ProductToegewezen toegewezenProduct;

public MutatieProduct(String aprod) {
this.aprod = aprod;
}


}
43 changes: 43 additions & 0 deletions src/test/java/org/example/domain/ProductToegewezen.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package org.example.domain;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "jw_product_toegewezen")
public class ProductToegewezen {

@Id
long id;
final String tg;

@ManyToOne(optional = false)
Beschikking beschikking;

@OneToMany(mappedBy = "toegewezenProduct", cascade = CascadeType.ALL)
private Set<MeldingAanvangProduct> meldingenAanvangProduct;

@OneToMany(mappedBy = "toegewezenProduct", cascade = CascadeType.ALL)
private Set<MutatieProduct> mutatiesProduct;

public ProductToegewezen(String tg) {
this.tg = tg;
}

public Beschikking beschikking() {
return beschikking;
}

public void setBeschikking(Beschikking beschikking) {
this.beschikking = beschikking;
}

public Set<MeldingAanvangProduct> meldingenAanvangProduct() {
return meldingenAanvangProduct;
}

public Set<MutatieProduct> mutatiesProduct() {
return mutatiesProduct;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.example.domain;

import io.ebean.DB;
import io.ebean.test.LoggedSql;
import org.junit.jupiter.api.Test;

import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

class TestDeleteCascadeCascadeCasade {

@Test
void deleteCascade() {

ProductToegewezen pt = new ProductToegewezen("pt");
pt.meldingenAanvangProduct().add(new MeldingAanvangProduct("map"));
pt.mutatiesProduct().add(new MutatieProduct("mp"));
Beschikking b = new Beschikking("b");
b.toegewezenProducten().add(pt);

DB.save(b);

LoggedSql.start();

DB.delete(b);

List<String> sql = LoggedSql.stop();

assertThat(sql).hasSize(8);
assertThat(sql.get(0)).contains("select t0.id from jw_product_toegewezen t0 where beschikking_id=?");
assertThat(sql.get(1)).contains("delete from jw_melding_aanvang_product where (toegewezen_product_id) "); // in | any
assertThat(sql.get(2)).contains(" -- bind(Array[1]");
assertThat(sql.get(3)).contains("delete from jw_mutatie_product where (toegewezen_product_id)"); // in | any
assertThat(sql.get(4)).contains(" -- bind(Array[1]");
assertThat(sql.get(5)).contains("delete from jw_product_toegewezen where id "); // in | any
assertThat(sql.get(6)).contains(" -- bind(Array[1]");
assertThat(sql.get(7)).contains("delete from jw_beschikking where id=?");
}
}