| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package nju.seec.helper.entity;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import org.hibernate.annotations.CreationTimestamp;
- import org.hibernate.annotations.DynamicInsert;
- import org.hibernate.annotations.DynamicUpdate;
- import javax.persistence.*;
- import java.time.LocalDateTime;
- /**
- * @author cst
- */
- @Data
- @Accessors(chain = true)
- @Entity
- @Table(name = "comment",
- indexes = {@Index(name = "slide_page_top", columnList = "slide_id"),
- @Index(name = "slide_page_top", columnList = "page_number"),
- @Index(name = "slide_page_top", columnList = "top_number")})
- @DynamicUpdate
- @DynamicInsert
- public class Comment {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- @Column(name = "slide_id", nullable = false)
- private Long slideId;
- @Column(name = "page_number", nullable = false)
- private Integer pageNumber;
- @Column(name = "`show`", nullable = false, columnDefinition = "bit(1) default true not null")
- private Boolean show = true;
- @Column(name = "top_number", nullable = false, columnDefinition = "int default 0 not null")
- private Integer topNumber = 0;
- @Column(nullable = false)
- private String title;
- @Column(nullable = false, columnDefinition = "text")
- private String content;
- @ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
- @JoinColumn(name = "user_id", nullable = false, foreignKey = @ForeignKey(name = "comment_user"))
- private User user;
- @Column(name = "create_at", updatable = false, nullable = false)
- @CreationTimestamp
- private LocalDateTime createAt;
- @OneToOne(mappedBy = "comment", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- private Reply reply;
- }
|