mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
This commit is contained in:
@@ -19,7 +19,7 @@ public class WriteJsonTest {
|
||||
JsonGenerator generator = jsonFactory.createGenerator(new StringWriter());
|
||||
|
||||
PathProperties pathProperties = PathProperties.parse("id,status,name,customer(id,name,address(street,city)),orders(qty,product(sku,prodName))");
|
||||
WriteJson writeJson = new WriteJson(null, generator, pathProperties);
|
||||
WriteJson writeJson = new WriteJson(null, generator, pathProperties, null);
|
||||
|
||||
WriteJson.WriteBean rootLevel = writeJson.createWriteBean(null, null);
|
||||
assertTrue(rootLevel.currentIncludeProps.contains("id"));
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.annotation.Sql;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
|
||||
@Sql
|
||||
@Entity
|
||||
public class EJsonJacksonIgnore {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
@JsonIgnore
|
||||
private Boolean basic;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Boolean getBasic() {
|
||||
return basic;
|
||||
}
|
||||
|
||||
public void setBasic(Boolean basic) {
|
||||
this.basic = basic;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.annotation.Sql;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Transient;
|
||||
import java.util.List;
|
||||
|
||||
@Sql
|
||||
@Entity
|
||||
public class EJsonTransientList {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
@Transient
|
||||
private Boolean basic;
|
||||
|
||||
@Transient
|
||||
private List<String> fileNames;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Boolean getBasic() {
|
||||
return basic;
|
||||
}
|
||||
|
||||
public void setBasic(Boolean basic) {
|
||||
this.basic = basic;
|
||||
}
|
||||
|
||||
public List<String> getFileNames() {
|
||||
return fileNames;
|
||||
}
|
||||
|
||||
public void setFileNames(List<String> fileNames) {
|
||||
this.fileNames = fileNames;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.annotation.Sql;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Transient;
|
||||
|
||||
@Sql
|
||||
@Entity
|
||||
public class EJsonTransientObject {
|
||||
|
||||
@Id
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
@Transient
|
||||
private Boolean basic;
|
||||
|
||||
@Transient
|
||||
private SomeBean someBean;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Boolean getBasic() {
|
||||
return basic;
|
||||
}
|
||||
|
||||
public void setBasic(Boolean basic) {
|
||||
this.basic = basic;
|
||||
}
|
||||
|
||||
public SomeBean getSomeBean() {
|
||||
return someBean;
|
||||
}
|
||||
|
||||
public void setSomeBean(SomeBean someBean) {
|
||||
this.someBean = someBean;
|
||||
}
|
||||
|
||||
public static class SomeBean {
|
||||
|
||||
public String name;
|
||||
|
||||
public String baz;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.Ebean;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
public class TestJacksonIgnore {
|
||||
|
||||
@Test
|
||||
public void testJacksonJsonIgnoreAnnotation() throws Exception {
|
||||
|
||||
EJsonJacksonIgnore bean = new EJsonJacksonIgnore();
|
||||
bean.setId(99L);
|
||||
bean.setName("foo");
|
||||
bean.setBasic(Boolean.TRUE);
|
||||
|
||||
String asJson = Ebean.json().toJson(bean);
|
||||
|
||||
// ignored on write
|
||||
assertFalse(asJson.contains("basic"));
|
||||
|
||||
EJsonJacksonIgnore bean1 = Ebean.json().toBean(EJsonJacksonIgnore.class, asJson);
|
||||
|
||||
assertNull(bean1.getBasic());
|
||||
assertEquals(bean.getId(), bean1.getId());
|
||||
assertEquals(bean.getName(), bean1.getName());
|
||||
|
||||
// ignored on read
|
||||
String jsonFull = "{\"id\":99,\"name\":\"foo\",\"basic\":true}";
|
||||
|
||||
bean1 = Ebean.json().toBean(EJsonJacksonIgnore.class, jsonFull);
|
||||
|
||||
assertNull(bean1.getBasic());
|
||||
assertEquals(bean.getId(), bean1.getId());
|
||||
assertEquals(bean.getName(), bean1.getName());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.Ebean;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TestTransientListProperty {
|
||||
|
||||
@Test
|
||||
public void testWithTransientListProperty() throws Exception {
|
||||
|
||||
String rawJson = "{\"basic\":true,\"fileNames\":[\"1\"]}";
|
||||
|
||||
EJsonTransientList bean = Ebean.json().toBean(EJsonTransientList.class, rawJson);
|
||||
|
||||
assertEquals(true, bean.getBasic());
|
||||
assertEquals(1, bean.getFileNames().size());
|
||||
|
||||
String asJson = Ebean.json().toJson(bean);
|
||||
|
||||
assertEquals(rawJson, asJson);
|
||||
}
|
||||
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.avaje.tests.json.transientproperties;
|
||||
|
||||
import com.avaje.ebean.Ebean;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TestTransientObjectProperty {
|
||||
|
||||
@Test
|
||||
public void testToBeanToJson() throws Exception {
|
||||
|
||||
String rawJson = "{\"name\":\"entityBeanName\",\"basic\":true,\"someBean\":{\"name\":\"transientBeanName\",\"baz\":\"foo\"}}";
|
||||
|
||||
EJsonTransientObject bean = Ebean.json().toBean(EJsonTransientObject.class, rawJson);
|
||||
|
||||
assertEquals("entityBeanName",bean.getName());
|
||||
assertEquals(true,bean.getBasic());
|
||||
assertEquals("transientBeanName",bean.getSomeBean().name);
|
||||
assertEquals("foo",bean.getSomeBean().baz);
|
||||
|
||||
String asJson = Ebean.json().toJson(bean);
|
||||
|
||||
assertEquals(rawJson, asJson);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.avaje.tests.model.basic;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import com.avaje.ebean.annotation.EnumValue;
|
||||
import com.avaje.ebean.annotation.JsonIgnore;
|
||||
import com.avaje.ebean.annotation.Where;
|
||||
|
||||
import javax.persistence.CascadeType;
|
||||
import javax.persistence.Entity;
|
||||
@@ -13,9 +12,10 @@ import javax.persistence.Table;
|
||||
import javax.persistence.Transient;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
import com.avaje.ebean.annotation.EnumValue;
|
||||
import com.avaje.ebean.annotation.Where;
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
/**
|
||||
* Customer entity bean.
|
||||
@@ -43,6 +43,9 @@ public class Customer extends BasicDomain {
|
||||
@Transient
|
||||
Boolean selected;
|
||||
|
||||
|
||||
@JsonIgnore
|
||||
//@Expose(deserialize = false, serialize = false)
|
||||
@Transient
|
||||
ReentrantLock lock = new ReentrantLock();
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public class TestJsonBeanDescriptorParse extends BaseTestCase {
|
||||
StringReader reader = new StringReader("{\"id\":123,\"name\":\"Hello rob\"}");
|
||||
JsonParser parser = server.json().createParser(reader);
|
||||
|
||||
ReadJson readJson = new ReadJson(parser, null);
|
||||
ReadJson readJson = new ReadJson(parser, null, null);
|
||||
|
||||
Customer customer = descriptor.jsonRead(readJson, null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user