#299 - ENH: Add support for mapping Jackson JsonNode as JSON content to DB including Postgres JSON and JSON types

This commit is contained in:
rbygrave
2015-05-28 22:54:32 +12:00
parent f5a2cf8ff9
commit 67f427b83e
13 changed files with 895 additions and 4 deletions
@@ -0,0 +1,56 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJson;
import com.fasterxml.jackson.databind.JsonNode;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
import java.util.Map;
@Entity
public class EBasicJsonNode {
@Id
Long id;
@Version
Long version;
String name;
@DbJson
JsonNode content;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public JsonNode getContent() {
return content;
}
public void setContent(JsonNode content) {
this.content = content;
}
}
@@ -0,0 +1,56 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJson;
import com.avaje.ebean.annotation.DbJsonType;
import com.fasterxml.jackson.databind.JsonNode;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
@Entity
public class EBasicJsonNodeBlob {
@Id
Long id;
@Version
Long version;
String name;
@DbJson(storage = DbJsonType.BLOB)
JsonNode content;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public JsonNode getContent() {
return content;
}
public void setContent(JsonNode content) {
this.content = content;
}
}
@@ -0,0 +1,58 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJson;
import com.avaje.ebean.annotation.DbJsonB;
import com.avaje.ebean.annotation.DbJsonType;
import com.fasterxml.jackson.databind.JsonNode;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
@Entity
public class EBasicJsonNodeJsonB {
@Id
Long id;
@Version
Long version;
String name;
//@DbJson(storage = DbJsonType.JSONB)
@DbJsonB
JsonNode content;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public JsonNode getContent() {
return content;
}
public void setContent(JsonNode content) {
this.content = content;
}
}
@@ -0,0 +1,56 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJson;
import com.avaje.ebean.annotation.DbJsonType;
import com.fasterxml.jackson.databind.JsonNode;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
@Entity
public class EBasicJsonNodeVarchar {
@Id
Long id;
@Version
Long version;
String name;
@DbJson(storage = DbJsonType.VARCHAR, length = 1000)
JsonNode content;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public JsonNode getContent() {
return content;
}
public void setContent(JsonNode content) {
this.content = content;
}
}