Merge pull request #3002 from ebean-orm/feature/improveLogging-markedAsDeleted

Improve the logging around MarkedAsDeleted
This commit is contained in:
Rob Bygrave
2023-03-21 20:43:12 +13:00
committed by GitHub
9 changed files with 119 additions and 39 deletions
@@ -1,7 +1,7 @@
package org.tests.basic;
import io.ebean.xtest.BaseTestCase;
import io.ebean.DB;
import io.ebean.xtest.BaseTestCase;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.ResetBasicData;
import org.tests.model.interfaces.Address;
@@ -9,23 +9,18 @@ import org.tests.model.interfaces.IAddress;
import org.tests.model.interfaces.IPerson;
import org.tests.model.interfaces.Person;
public class TestManyOneInterface extends BaseTestCase {
class TestManyOneInterface extends BaseTestCase {
@Test
public void test() {
void test() {
ResetBasicData.reset();
IAddress a = new Address("hello");
IPerson p = new Person();
DB.save(p);
IAddress a = new Address("hello", p);
p.setDefaultAddress(a);
DB.save(a);
DB.save(p);
//Assert.assertTrue();
}
}
@@ -2,6 +2,7 @@ package org.tests.model.interfaces;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Version;
@Entity
@@ -13,10 +14,14 @@ public class Address implements IAddress {
@Version
private int version;
@ManyToOne(targetEntity=Person.class, optional=false)
private IPerson person;
private String street;
public Address(String street) {
public Address(String street, IPerson person) {
this.street = street;
this.person = person;
}
public long getOid() {
@@ -1,9 +1,7 @@
package org.tests.model.interfaces;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Version;
import javax.persistence.*;
import java.util.List;
@Entity
public class Person implements IPerson {
@@ -13,6 +11,8 @@ public class Person implements IPerson {
@Version
private int version;
@OneToMany(targetEntity=Address.class)
private List<IAddress> addresses;
@ManyToOne(targetEntity = Address.class)
private IAddress defaultAddress;
@@ -42,4 +42,11 @@ public class Person implements IPerson {
this.version = version;
}
public List<IAddress> getAddresses() {
return addresses;
}
public void setAddresses(List<IAddress> addresses) {
this.addresses = addresses;
}
}
@@ -1,16 +1,17 @@
package org.tests.model.interfaces;
import io.ebean.xtest.BaseTestCase;
import io.ebean.DB;
import io.ebean.xtest.BaseTestCase;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class TestTargetEntity extends BaseTestCase {
class TestTargetEntity extends BaseTestCase {
@Test
public void test() {
void test() {
Person person = setup();
Persona persona = new Persona("junk");
@@ -20,17 +21,48 @@ public class TestTargetEntity extends BaseTestCase {
Persona found = DB.find(Persona.class, persona.getId());
assertThat(found).isNotNull();
assertThat(found.persona()).isEqualTo("junk");
assertThat(found.getPerson().getDefaultAddress().getStreet()).isEqualTo("street");
IPerson person1 = found.getPerson();
IAddress address = person1.getDefaultAddress();
assertThat(address.getStreet()).isEqualTo("street");
person1.setDefaultAddress(null);
DB.save(person1);
DB.delete(address);
DB.delete(persona);
DB.delete(person);
DB.delete(person.getDefaultAddress());
DB.delete(person1);
}
@Test
void addresses() {
Person p0 = new Person();
Person p1 = new Person();
DB.saveAll(p0, p1);
Address address0 = new Address("a0", p0);
Address address1 = new Address("a1", p0);
Address address2 = new Address("a2", p1);
Address address3 = new Address("a3", p1);
DB.saveAll(address0, address1, address2, address3);
p0.setDefaultAddress(address0);
p1.setDefaultAddress(address2);
DB.saveAll(p0, p1);
List<Person> list = DB.find(Person.class).findList();
for (Person person : list) {
IAddress da0 = person.getDefaultAddress();
da0.getStreet();
}
list.get(0).getAddresses()
.size();
}
private Person setup() {
Address address = new Address("street");
DB.save(address);
Person person = new Person();
DB.save(person);
Address address = new Address("street", person);
DB.save(address);
person.setDefaultAddress(address);
DB.save(person);
return person;