| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package nju.seec.helper.entity;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import nju.seec.helper.entity.converter.MapConverter;
- import org.hibernate.annotations.DynamicInsert;
- import org.hibernate.annotations.DynamicUpdate;
- import org.hibernate.annotations.UpdateTimestamp;
- import javax.persistence.*;
- import java.math.BigDecimal;
- import java.time.LocalDateTime;
- import java.util.Map;
- /**
- * @author sxt
- * <p>
- * updated by cst
- */
- @Data
- @Accessors(chain = true)
- @Entity
- @Table(name = "quiz_student_answer", uniqueConstraints = @UniqueConstraint(name = "quiz_student_unique", columnNames = {"quiz_id", "student_id"}))
- @DynamicUpdate
- @DynamicInsert
- public class QuizStudentAnswer {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name = "id")
- private Long id;
- @ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
- @JoinColumn(name = "quiz_id", foreignKey = @ForeignKey(name = "answer_quiz"))
- private Quiz quiz;
- @ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
- @JoinColumn(name = "student_id", foreignKey = @ForeignKey(name = "answer_student"))
- private User student;
- @SuppressWarnings("all")
- @Convert(converter = MapConverter.class)
- @Column(nullable = false)
- private Map<String, Object> answers;
- @Column(name = "submit_at", nullable = false)
- @UpdateTimestamp
- private LocalDateTime submitAt;
- @Column(name = "submit_number", nullable = false, columnDefinition = "int default 1 not null")
- private Integer submitNumber = 0;
- @Column(nullable = false)
- private BigDecimal score;
- }
|