Code.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package nju.seec.SEECdemo.data.entity.assignment;
  2. import lombok.Data;
  3. import lombok.EqualsAndHashCode;
  4. import lombok.ToString;
  5. import nju.seec.SEECdemo.logic.service.impl.assignment.mock.MockCourse;
  6. import nju.seec.SEECdemo.util.enums.AssignmentStatus;
  7. import nju.seec.SEECdemo.util.enums.AssignmentType;
  8. import org.hibernate.annotations.LazyCollection;
  9. import org.hibernate.annotations.LazyCollectionOption;
  10. import javax.persistence.*;
  11. import java.time.LocalDateTime;
  12. import java.util.HashSet;
  13. import java.util.Set;
  14. @Data
  15. @EqualsAndHashCode(exclude = {"resultSet"})
  16. @ToString(exclude = {"resultSet"})
  17. @Entity
  18. @Table(name = "ENTITY_CODE")
  19. public class Code {
  20. @Id
  21. @Column(name = "id")
  22. private Integer id;
  23. @Basic
  24. @Column(name = "name", nullable = false)
  25. private String name;
  26. @Basic
  27. @Column(name = "description", nullable = false)
  28. private String description;
  29. @Enumerated(value = EnumType.STRING)
  30. @Column(name = "type", columnDefinition = "VARCHAR(255) NOT NULL")
  31. private AssignmentType type = AssignmentType.CODE;
  32. @Enumerated(value = EnumType.STRING)
  33. @Column(name = "status", columnDefinition = "VARCHAR(255) NOT NULL DEFAULT 'PREPARING'")
  34. private AssignmentStatus status = AssignmentStatus.PREPARING;
  35. @Basic
  36. @Column(name = "start_at", nullable = false)
  37. private LocalDateTime startAt;
  38. @Basic
  39. @Column(name = "end_at", nullable = false)
  40. private LocalDateTime endAt;
  41. @Basic
  42. @Column(name = "question", nullable = false)
  43. private Long questionId;
  44. @Basic
  45. @Column(name = "hash")
  46. private String initHash;
  47. @Basic
  48. @Column(name = "uuid", nullable = false)
  49. private String uuid;
  50. @Basic
  51. @Column(name = "course", nullable = false)
  52. private int courseId;
  53. @OneToMany(targetEntity = CodeResult.class, mappedBy = "code", cascade = CascadeType.REMOVE)
  54. @LazyCollection(LazyCollectionOption.EXTRA)
  55. private Set<CodeResult> resultSet = new HashSet<>();
  56. }