1.字段template 在实体类中是list 格式,在数据库中是text类型(后面也可以改为vachar)
注意事项:
2.添加了几个注解
@Transient :不会校验数据库一致性
@TypeDef(name = “json”, typeClass = JsonStringType.class):转json格式返回,要不然存数据库会报错
3.在service中也处理了数据,做json转换,
4.添加了一个template1 字段,
5.template 和template1的set方法
分开,要不然可能会注解误伤。
源代码是
package com.entity.database;
import com.alibaba.fastjson.annotation.JSONField;
import com.entity.response.Columns;
import com.utils.Pages;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
import java.io.Serializable;
import java.util.*;
/**
* @author vip
*/
@Entity
@DynamicInsert
@DynamicUpdate
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = "data_source", schema = "public", catalog = "eip")
public class DataSourceEntity implements Serializable {
// private static final long serialVersionUID = 1L;
private Integer id;
private String title;
private String source;
private String jdbcUrl;
private String jdbcDriver;
private String jdbcUsername;
private String jdbcPassword;
private String jdbcSql;
private String jdbcPeriod;
private String jdbcDelta;
private List<Map<String, Object>> template;
private Integer status;
private Integer companyId;
private Long formId;
private Pages pages;
private ArrayList<DataSourceLogsEntity> dataSourceLogsEntities;
private String tableName;
private Integer type;
private String fileUrl;
private boolean isTitle;
private Integer driver;
private ArrayList<Columns> columns;
private String isKey;
private String template1;
@Transient
public List<Map<String, Object>> getTemplate() {
return template;
}
public void setTemplate(List<Map<String, Object>> template) {
this.template = template;
}
@Basic
@Column(name = "template")
public String getTemplate1() {
return template1;
}
public void setTemplate1(String template) {
this.template1 = template;
}
@Transient
public Integer getDriver() {
return driver;
}
@Transient
public void setDriver(Integer driver) {
this.driver = driver;
}
@Transient
public String getIsKey() {
return isKey;
}
public void setIsKey(String isKey) {
this.isKey = isKey;
}
@Transient
public ArrayList<Columns> getColumns() {
return columns;
}
public void setColumns(ArrayList<Columns> columns) {
this.columns = columns;
}
@Transient
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
@Transient
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.type = type;
}
@Transient
public Pages getPages() {
return pages;
}
public void setPages(Pages pages) {
this.pages = pages;
}
@Column(name = "company_id")
public Integer getCompanyId() {
return companyId;
}
public void setCompanyId(Integer companyId) {
this.companyId = companyId;
}
@Column(name = "table_name")
public String getTableName() {
if (tableName != null) {
return tableName.toLowerCase();
}
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
@Column(name = "form_id")
public Long getFormId() {
return formId;
}
public void setFormId(Long formId) {
this.formId = formId;
}
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "title")
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Transient
public boolean isTitle() {
return isTitle;
}
public void setIsTitle(boolean title) {
this.isTitle = isTitle;
}
@Basic
@Column(name = "source")
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Basic
@Column(name = "jdbc_url")
public String getJdbcUrl() {
return jdbcUrl;
}
public void setJdbcUrl(String jdbcUrl) {
this.jdbcUrl = jdbcUrl;
}
@Basic
@Column(name = "jdbc_driver")
public String getJdbcDriver() {
return jdbcDriver;
}
public void setJdbcDriver(String jdbcDriver) {
this.jdbcDriver = jdbcDriver;
}
@Basic
@Column(name = "jdbc_username")
public String getJdbcUsername() {
return jdbcUsername;
}
public void setJdbcUsername(String jdbcUsername) {
this.jdbcUsername = jdbcUsername;
}
@Basic
@Column(name = "jdbc_password")
public String getJdbcPassword() {
return jdbcPassword;
}
public void setJdbcPassword(String jdbcPassword) {
this.jdbcPassword = jdbcPassword;
}
@Basic
@Column(name = "jdbc_sql")
public String getJdbcSql() {
return jdbcSql;
}
public void setJdbcSql(String jdbcSql) {
this.jdbcSql = jdbcSql;
}
@Basic
@Column(name = "jdbc_period")
public String getJdbcPeriod() {
return jdbcPeriod;
}
public void setJdbcPeriod(String jdbcPeriod) {
this.jdbcPeriod = jdbcPeriod;
}
@Basic
@Column(name = "jdbc_delta")
public String getJdbcDelta() {
return jdbcDelta;
}
public void setJdbcDelta(String jdbcDelta) {
this.jdbcDelta = jdbcDelta;
}
@Basic
@Column(name = "status")
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
DataSourceEntity that = (DataSourceEntity) o;
return id.equals(that.id) &&
status.equals(that.status) &&
Objects.equals(title, that.title) &&
Objects.equals(source, that.source) &&
Objects.equals(jdbcUrl, that.jdbcUrl) &&
Objects.equals(jdbcDriver, that.jdbcDriver) &&
Objects.equals(jdbcUsername, that.jdbcUsername) &&
Objects.equals(jdbcPassword, that.jdbcPassword) &&
Objects.equals(jdbcSql, that.jdbcSql) &&
Objects.equals(jdbcPeriod, that.jdbcPeriod) &&
Objects.equals(jdbcDelta, that.jdbcDelta) &&
Objects.equals(template, that.template);
}
@Override
public int hashCode() {
return Objects.hash(id, title, source, jdbcUrl, jdbcDriver, jdbcUsername, jdbcPassword, jdbcSql, jdbcPeriod, jdbcDelta, template, status);
}
@JSONField(serialize = false)
@Transient
public HashMap<String, String> toStringLikeMap() {
HashMap<String, String> stringLikeMap = new HashMap<>(2);
return stringLikeMap;
}
@JSONField(serialize = false)
@Transient
public HashMap<String, Integer> toIntGequalMap() {
HashMap<String, Integer> intGequalMap = new HashMap<>(2);
intGequalMap.put("id", id);
// intGequalMap.put("type", type);
intGequalMap.put("driver", driver);
return intGequalMap;
}
@JSONField(serialize = false)
@Transient
public HashMap<String, String> toStringEqualMap() {
HashMap<String, String> stringEqualMap = new HashMap<>(2);
stringEqualMap.put("name", title);
stringEqualMap.put("tableName", tableName);
return stringEqualMap;
}
}
还有一个
dataSourceEntity.setTemplate1(JSON.toJSONString(data.getTemplate()));}