#297 - ENH: Add support for mapping Map<String,Object> as JSON content to DB including Postgres JSON and JSON types.

This commit is contained in:
rbygrave
2015-05-28 00:02:57 +12:00
parent 4e1cda691f
commit f5a2cf8ff9
37 changed files with 1898 additions and 193 deletions
@@ -0,0 +1,55 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJson;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
import java.util.Map;
@Entity
public class EBasicJsonMap {
@Id
Long id;
@Version
Long version;
String name;
@DbJson
Map<String,Object> 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 Map<String, Object> getContent() {
return content;
}
public void setContent(Map<String, Object> 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 javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
import java.util.Map;
@Entity
public class EBasicJsonMapBlob {
@Id
Long id;
@Version
Long version;
String name;
@DbJson(storage = DbJsonType.BLOB)
Map<String,Object> 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 Map<String, Object> getContent() {
return content;
}
public void setContent(Map<String, Object> content) {
this.content = content;
}
}
@@ -0,0 +1,55 @@
package com.avaje.tests.model.json;
import com.avaje.ebean.annotation.DbJsonB;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
import java.util.Map;
@Entity
public class EBasicJsonMapJsonB {
@Id
Long id;
@Version
Long version;
String name;
@DbJsonB
Map<String,Object> 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 Map<String, Object> getContent() {
return content;
}
public void setContent(Map<String, Object> 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 javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Version;
import java.util.Map;
@Entity
public class EBasicJsonMapVarchar {
@Id
Long id;
@Version
Long version;
String name;
@DbJson(storage = DbJsonType.VARCHAR)//, length = 2200)
Map<String,Object> 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 Map<String, Object> getContent() {
return content;
}
public void setContent(Map<String, Object> content) {
this.content = content;
}
}