#2278 - Move null to empty json collections check to BeanPropertyJsonBasic

This commit is contained in:
rbygrave
2021-07-30 23:53:28 +12:00
parent 443e826f61
commit d601a88d82
9 changed files with 85 additions and 23 deletions
@@ -7,6 +7,7 @@ import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.util.Map;
@Embeddable
public class EAddress {
@@ -24,6 +25,9 @@ public class EAddress {
@DbJson
PlainBean jbean;
@DbJson
Map<String, Object> jraw;
public String getStreet() {
return street;
}
@@ -56,6 +60,14 @@ public class EAddress {
this.jbean = jbean;
}
public Map<String, Object> getJraw() {
return jraw;
}
public void setJraw(Map<String, Object> jraw) {
this.jraw = jraw;
}
public EAddressStatus getStatus() {
return status;
}
@@ -20,7 +20,7 @@ public class EBasicJsonMapVarchar {
String name;
@DbJson(storage = DbJsonType.VARCHAR)//, length = 2200)
Map<String, Object> content;
Map<String, Object> content;
public Long getId() {
return id;
@@ -9,7 +9,9 @@ import org.tests.model.embedded.EAddress;
import org.tests.model.embedded.EPerson;
import org.tests.model.json.PlainBean;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@@ -18,17 +20,20 @@ public class TestNativeWithEmbedded extends BaseTestCase {
@Test
public void test() {
Map<String, Object> rawMap = new LinkedHashMap<>();
rawMap.put("a","1");
EPerson person = new EPerson();
person.setName("Frank");
EAddress address = new EAddress();
address.setStreet("1 foo st");
address.setCity("barv");
address.setJbean(new PlainBean("hi", 3));
address.setJraw(rawMap);
person.setAddress(address);
DB.save(person);
String sql = "select id, name, street, suburb, addr_city, addr_status, addr_jbean from eperson where id = ?";
String sql = "select id, name, street, suburb, addr_city, addr_status, addr_jbean, jraw from eperson where id = ?";
LoggedSqlCollector.start();
@@ -39,6 +44,7 @@ public class TestNativeWithEmbedded extends BaseTestCase {
assertThat(one.getName()).isEqualTo("Frank");
assertThat(one.getAddress().getStreet()).isEqualTo("1 foo st");
assertThat(one.getAddress().getJbean().getName()).isEqualTo("hi");
assertThat(one.getAddress().getJraw().get("a")).isEqualTo("1");
List<String> loggedSql = LoggedSqlCollector.stop();
assertThat(loggedSql).hasSize(1);