把entity常用的注解做个记录
//这是一个资源实体类,关联的表是artical
@Entity
@Table(name = "artical")
//@JsonIgnoreProperties 作用是 json 序列化时忽略 bean 中的一些不需要转化的属性
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "hander", "fieldHandler"})
//Serializable的作用是实现序列化
public class Artical implements Serializable {
@Id
//strategy = GenerationType.IDENTITY表示主键由数据库自动生成
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer articalId; //资源id
//资源名称不能为空,为空提示:资源名称不能为空
@NotEmpty(message = "资源名称不能为空")
//长度为200
@Column(length = 200)
private String name; //资源名称
//注解@JsonFormat主要是后台到前台的时间格式的转换
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//注解@DataFormAT主要是前后到后台的时间格式的转换
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date publishDate; //发布时间
// @Transient 注解不是数据库里面的字段
@Transient
private String publishDateStr; //发布时间字符串
//多对一
@ManyToOne
//通过userId对应过来
@JoinColumn(name = "userId")
private User user; //所属用户
//多对一
@ManyToOne
//通过userId对应过来
@JoinColumn(name = "arcTypeId")
private ArcType arcType; //所属资源类型
private boolean isFree; //是否是免费资源 true是 false否
private Integer points; //积分
//@Lob 指定持久属性或字段应作为大对象持久保存到数据库支持的大对象类型。
@Lob
// @Column(columnDefinition = "TEXT") 列名定义的类型为TEXT
@Column(columnDefinition = "TEXT")
private String content; //资源内容
@Transient
private String contentNoTag; //资源内容 网页标签 lucene分词用到
@Column(length = 200)
private String download; //百度云地址
@Column(length = 10)
private String password; //密码
private boolean isHot=false; //是否热门 默认不是热门
}