| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package nju.seec.helper.entity;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import org.hibernate.annotations.*;
- import javax.persistence.CascadeType;
- import javax.persistence.Entity;
- import javax.persistence.ForeignKey;
- import javax.persistence.Table;
- import javax.persistence.*;
- import java.time.LocalDateTime;
- import java.util.List;
- /**
- * @author cst
- */
- @Data
- @Accessors(chain = true)
- @Entity
- @Table(name = "course", uniqueConstraints = @UniqueConstraint(name = "course_name_unique", columnNames = {"delete_at", "teacher_id", "name"}))
- @DynamicUpdate
- @DynamicInsert
- @Where(clause = "delete_at = 0")
- //@Cacheable
- //@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
- public class Course {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- @Column(nullable = false)
- private String name;
- @Column(nullable = false)
- private String bio;
- @Column(nullable = false)
- private String code;
- @Column(name = "create_at", nullable = false, updatable = false)
- @CreationTimestamp
- private LocalDateTime createAt;
- @ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
- @JoinColumn(name = "teacher_id", nullable = false, foreignKey = @ForeignKey(name = "course_teacher"))
- private User teacher;
- @ColumnDefault("0")
- @Column(name = "delete_at", nullable = false)
- private Long deleteAt = 0L;
- @Type(type = "json")
- @Column(columnDefinition = "json", name = "knowledge_id")
- private List<String> knowledgeId;
- }
|