package jef.orm.custom;
import java.util.List;
import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import jef.database.DataObject;
import jef.database.annotation.Type;
import com.alibaba.fastjson.JSON;
@Entity()
public class MyFoo extends DataObject {
@Id
@GeneratedValue
private int id;
private String name;
@Column(columnDefinition = "varchar(256)")
@Type(JSONVarcharMapping.class)
private List<String> data;
/**
* 默认PG没有用开启hstore。需要人工执行
* CREATE EXTENSION hstore;
*/
@Column(name = "hstore_c", columnDefinition = "hstore")
@Type(HstoreMapMapping.class)
private Map<String, String> hstoreField;
@Column(name = "json_col", columnDefinition = "json")
@Type(ObjectJsonMapping.class)
private JSON jsonField;
@Column(name = "jsonb_col", columnDefinition = "jsonb")
@Type(ObjectJsonbMapping.class)
private Map<String,Object> jsonbField;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getData() {
return data;
}
public void setData(List<String> data) {
this.data = data;
}
public Map<String, String> getHstoreField() {
return hstoreField;
}
public void setHstoreField(Map<String, String> hstoreField) {
this.hstoreField = hstoreField;
}
public JSON getJsonField() {
return jsonField;
}
public void setJsonField(JSON jsonField) {
this.jsonField = jsonField;
}
public Map<String, Object> getJsonbField() {
return jsonbField;
}
public void setJsonbField(Map<String, Object> jsonbField) {
this.jsonbField = jsonbField;
}
public enum Field implements jef.database.Field {
id, name, data, hstoreField, jsonField,jsonbField
}
}