(十五)实体类的构建

1.先构建类

1.Blog类

package com.lrm.blog.po;

import javax.persistence.*;
import java.util.Date;
@Entity  //使用此注解才能拥有生成数据库表的能力
@Table(name = "t_blog")//指定数据表的名字
public class Blog {

    @Id  //指定id
    @GeneratedValue  //自动生成
    private Long id;
    private String title;
    private String content;
    private String firstPicture;
//    flag表示“标记”
    private String flag;
    private Integer views;
//    赞赏是否开启
    private boolean appreciation;
//    shareStatement表示转载声明是否开启
    private boolean shareStatement;
//    评论
    private boolean commentabled;
//发布
    private boolean published;
//推荐
    private boolean recommend;
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;
    @Temporal(TemporalType.TIMESTAMP)
    private Date updateTime;

    public Blog() {
    }
    。。。

2.Type类

package com.lrm.blog.po;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="t_type")
public class Type {

    @Id
    @GeneratedValue
    private Long id;
    private String name;

    public Type() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Type{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

3.Tag类

package com.lrm.blog.po;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="t_tag")
public class Tag {

    @Id
    @GeneratedValue
    private Long id;
    private String name;

    public Tag() {
    }

4.Comment类

package com.lrm.blog.po;

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name="t_comment")
public class Comment {

    @Id
    @GeneratedValue
    private Long id;
    private String nickname;
    private String email;
    private String content;
    private String avatar;
//想要在在数据库中生成对应的生成时间需要加此注解
//    括号内的内容为时间的类型(日期加时间)
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;

    public Comment() {
    }

5.User类

package com.lrm.blog.po;

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name="t_user")
public class User {

    @Id
    @GeneratedValue
    private Long id;
    private String nickname;
    private String username;
    private String password;
    private String email;
    private String avatar;
    private Integer type;
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;
    @Temporal(TemporalType.TIMESTAMP)
    private Date updatTime;

    public User() {
    }

2.处理实体类与实体类之间的关系
在这里插入图片描述

处理的原则:“多”的一端作为关系维护端,“一”的一端作为关系被维护端

例如:Blog类和Type类,一个Type类对应多个Blog类,一个Blog类对应Type类,所以Blog类与Type类的关系为一对多。
“多”的一端作为关系维护端,“一”的一端作为关系被维护端

*在Blog类中


//  关系维护端
    @ManyToOne//主要维护
    private Type type;

*在Type类中

//    关系被维护端
    @OneToMany(mappedBy = "type")//关系被维护
    private List<Blog>blogs = new ArrayList<>();

然后分别setter and getter ;

3.级联关系----当新增一个新的Blog的时候同时新增一个tag,新增的tag会存进数据库


//    级联新增
    @ManyToMany(cascade = {CascadeType.PERSIST})
    private List<Tag>tags = new ArrayList<>();

3.评论类的自关联关系

    
//    一个父类评论可以有多个子类评论(关系被维护方)
    @OneToMany(mappedBy = "parentComment")
    private List<Comment> replyCommens = new ArrayList<>();

//    一个子类评论只有有一个父类评论(关系维护方)
    @ManyToOne
    private Comment parentComment;

然后setter and getter

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值