package cn.minbb.evaluation.entity; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import javax.persistence.*; import javax.persistence.Version; import java.util.Date; import java.util.List; @Entity @Table(name = "classification") @NoArgsConstructor public class Classification { @Getter @Setter @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "e_id", nullable = false, columnDefinition = "BIGINT COMMENT '题目类别实体ID'") private Long e_id; @Getter @Setter @Column(name = "name", nullable = false, length = 32, columnDefinition = "VARCHAR(32) COMMENT '题目类别'") private String name; @Getter @Setter @Column(name = "introduction", columnDefinition = "VARCHAR(255) COMMENT '题目类别介绍'") private String introduction; @Getter @Setter @Column(name = "remark", columnDefinition = "VARCHAR(255) COMMENT '备注'") private String remark; @Getter @Setter @Column(name = "order_by", columnDefinition = "INT COMMENT '排序'") private Integer orderBy; @Getter @Setter @Column(name = "enabled", nullable = false, columnDefinition = "TINYINT DEFAULT 1 COMMENT '启用题库'") private Boolean enabled; @Getter @Setter @ManyToMany(cascade = CascadeType.REFRESH) @JoinTable(name = "classification_question", joinColumns = {@JoinColumn(name = "classification_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '题目类别实体ID'")}, inverseJoinColumns = {@JoinColumn(name = "question_id", referencedColumnName = "e_id", columnDefinition = "BIGINT COMMENT '题目实体ID'")}) // 题目(列表) private List questionList; @Getter @Setter @OneToMany(cascade = {CascadeType.REFRESH}, mappedBy = "classification", fetch = FetchType.LAZY) // 回复(集合) private List replySet; @Getter @Setter @Column(name = "created_at", columnDefinition = "DATETIME COMMENT '创建时间'") @CreationTimestamp private Date createdAt; @Getter @Setter @Column(name = "updated_at", columnDefinition = "DATETIME COMMENT '更新时间'") @UpdateTimestamp private Date updatedAt; @Version @Column(name = "version", columnDefinition = "BIGINT COMMENT '版本号'") public Long version; }