/*********************************************************** * @Description : 考试表,要有题目、总分数、时间限制、有效日期、创建者等字段 * @author : 梁山广(Laing Shan Guang) * @date : 2019/5/14 07:42 * @email : liangshanguang2@gmail.com ***********************************************************/ // 定义包名,用于组织类文件,避免命名冲突 package lsgwr.exam.entity; // 导入Jackson库的JsonFormat注解,用于JSON序列化时自定义日期格式 import com.fasterxml.jackson.annotation.JsonFormat; // 导入Lombok库的Data注解,用于自动生成getter、setter、equals、hashCode和toString方法 import lombok.Data; // 导入Hibernate的DynamicUpdate注解,用于在实体更新时只更新发生变化的字段 import org.hibernate.annotations.DynamicUpdate; // 导入JPA的Entity注解,用于声明该类是一个JPA实体类 import javax.persistence.Entity; // 导入JPA的Id注解,用于声明该类中的某个字段作为主键 import javax.persistence.Id; // 导入Java的Date类,用于表示日期和时间 import java.util.Date; @Entity @Data @DynamicUpdate public class Exam { // 使用JPA的@Id注解声明该字段为主键 @Id private String examId;// 考试ID,唯一标识一场考试 private String examName;// 考试名称 private String examAvatar; // 考试头像或图标 private String examDescription;// 考试描述或简介 private String examQuestionIds;// 存储所有问题ID的字符串,可能是逗号分隔的ID列表 private String examQuestionIdsRadio;// 存储所有单选题ID的字符串 private String examQuestionIdsCheck;// 存储所有多选题ID的字符串 private String examQuestionIdsJudge;// 存储所有判断题ID的字符串 private Integer examScore;// 考试总分 private Integer examScoreRadio;// 单选题总分 private Integer examScoreCheck;// 多选题总分 private Integer examScoreJudge;// 判断题总分 private String examCreatorId;// 创建者ID,标识谁创建了这场考试 private Integer examTimeLimit;// 考试时间限制,单位可能是分钟 // 考试开始时间,使用Jackson的@JsonFormat注解自定义日期格式 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date examStartDate; // 考试结束时间 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date examEndDate; /** * 创建时间,设计数据库表时设置了自动插入当前时间,因此在Java代码中无需手动设置。 * 使用Jackson的@JsonFormat注解自定义日期格式以便于前端展示。 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; /** * 更新时间,设计数据库表时也设置了自动插入当前时间(或更新为当前时间),在Java代码中无需手动维护。 * 同时,由于使用了Hibernate的@DynamicUpdate注解,当数据库中的实体数据发生变化时,该字段会自动更新为当前时间。 * 使用Jackson的@JsonFormat注解自定义日期格式以便于前端展示。 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; }