在@Column中有个比较强大的配置 columnDefinition,如果有不好定义或者java没有这个属性的直接用columnDefinition根据ddl来定义即可,字段的注释也是可以定义的。
package com.ld.entity;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
@Entity
@Table(name = "banner")
public class BannerN {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@Column(name = "module_id",columnDefinition="bigint(20)")
private Long moduleId;
private String name;
@Column(name = "detail",columnDefinition="varchar(255) comment '详情'")
private String detail;
@Column(name = "banners",columnDefinition="text comment '集合字符串'")
private String banners;
@Transient
private List<Banner> bannerList;
private Integer type;
@Transient
private Integer index;
private Integer orderIndex;
private Long pageId;
static class Banner {
private Long id;
private Date createTime;
private Integer index;
private String pictrue;
private String click_url;//跳转链接
private String click_url_IOS;//跳转链接
private String click_url_Android;//跳转链接
private String copywriting;//文案
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getPictrue() {
return pictrue;
}
public void setPictrue(String pictrue) {
this.pictrue = pictrue;
}
public String getClick_url() {
return click_url;
}
public void setClick_url(String click_url) {
this.click_url = click_url;
}
public String getClick_url_IOS() {
return click_url_IOS;
}
public void setClick_url_IOS(String click_url_IOS) {
this.click_url_IOS = click_url_IOS;
}
public String getClick_url_Android() {
return click_url_Android;
}
public void setClick_url_Android(String click_url_Android) {
this.click_url_Android = click_url_Android;
}
public String getCopywriting() {
return copywriting;
}
public void setCopywriting(String copywriting) {
this.copywriting = copywriting;
}
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
。。。
public String getBanners() {
if (this.banners != null) {
this.setBannerList(JSONArray.parseArray(banners, Banner.class));
}
return banners;
}
public void setBanners(String banners) {
this.banners = banners;
this.bannerList = JSONArray.parseArray(banners, Banner.class);
}
public List<Banner> getBannerList() {
return bannerList;
}
public void setBannerList(List<Banner> bannerList) {
this.bannerList = bannerList;
this.banners = JSONArray.toJSONString(bannerList, SerializerFeature.UseISO8601DateFormat);
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getIndex() {
this.orderIndex = index;
return index;
}
public void setIndex(Integer index) {
this.index = index;
this.orderIndex = index;
}
public Integer getOrderIndex() {
if(orderIndex!=null){
this.index = orderIndex;
}
return orderIndex;
}
public void setOrderIndex(Integer orderIndex) {
this.orderIndex = orderIndex;
if(orderIndex!=null){
this.index = orderIndex;
}
}
@Transient:自动生成表时忽略该字段。
@Id :主键
@GeneratedValue(strategy = GenerationType.IDENTITY):主键策略(IDENTITY:自增)