在项目目录下新建一个包PersisentObject
po层,装载的是实体类。在其中创建
Blog类
在Blog类中创建主键等
private Long id;
private String title;
@Basic(fetch = FetchType.EAGER)
@Lob
private String content;
private String firstPicture;
private String flag;
private Integer views;
private boolean appreciation;
private boolean shareStatement;
private boolean commentabled;
private boolean published;
private boolean recommend;
private Date createTime;
private Date updateTime;
@Transient
public String tagIds;
private String description;
首先构造一个空的构造函数
public Blog(){
}
接着按alt+insert选下面的getterandsetter生成getset.
和tostring方法
加入注解,指定数据库相关的文件
再标识ID,表示是主键
@GeneratedValue
生成策略是自动生成
再创建分类,标签,评论等内容的实体类
getterandsetter等东西和一开始做法一样。
每个实体类对应的数据库名都是t_(实体类名称)
Comment类中有上传时间和更新时间等,要加上
@Temporal(TemporalType.TIMESTAMP)时间戳
有时间的东西都要加上@Temporal(TemporalType.TIMESTAMP)注解
接下来就是处理实体类之间的关系。
Blog和Type是多对一的关系,所以在Blog实体类中加入
@ManyToOne
private Type type;
相应的在Type类中就要加入对应的
@OneToMany(mappedBy = "type")
private List<Blog> blogs = new ArrayList<>();
加入这些后再次生成getset方法
Blog和Tag之间是多对多的关系
所以在两边都加入ManyToMany
在后面维护与被维护关系时,依旧是Blog维护Tag
在Tag中依旧是加入mtm后面括号中的东西。
Blog中后面那个是级联新增
Blog和User是多对一的关系
所以
对应的User中也要加入
接下来是comment和Blog的关系
是一对多
相对应的就是在Comment类中新增
最后要在comment中设置自关联
一个父对象对应多个子对象等等
加入
就是评论与二级评论这种玩意
这些东西弄完别忘记去setget哦
最后附上代码
Blog.java
package net.yq.springbootblog.PersisentObject;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Entity(name = "t_blog")
public class Blog {
@Id
@GeneratedValue
private Long id;
private String title;
@Basic(fetch = FetchType.EAGER)//这个位置加上的这个是防止在文章新增的时候因为数据过大报异常,因为自动生成的数据库在文章内容这个字段只有255大小。
@Lob
private String content;
private String firstPicture;
private String flag;
private Integer views;
private boolean appreciation;
private boolean shareStatement;
private boolean commentabled;
private boolean published;
private boolean recommend;
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
@Temporal(TemporalType.TIMESTAMP)
private Date updateTime;
@Transient
private String description;
public String getDescription() {
//此处是文章简介,后面会讲。
return description;
}
public void setDescription(String description) {
this.description = description;
}
@ManyToOne
private Type type;
@ManyToMany(cascade = {
CascadeType.PERSIST})
private List<Tag> tags = new ArrayList<>();
@ManyToOne
private User user;
@OneToMany(mappedBy = "blog")
private List<Comment> comments = new ArrayList<>();
public Blog(){
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent