1.实体类Question
@Entity
@ApiModel(value = "题目(单条)")
@Table(name = "question")
public class Question {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@ApiModelProperty(value = "题目id")
Integer id;
@ApiModelProperty(value = "科目id")
Integer subjectId;
@ApiModelProperty(value = "题型")
String questionType;
@ApiModelProperty(value = "知识点id")
Integer knowledgePointId;
@ApiModelProperty(value = "上传教师id")
Integer teacherId;
@ApiModelProperty(value = "答案")
String answer;
@ApiModelProperty(value = "题干(一种题型对应一个题干)")
String questionStem;
@ApiModelProperty(value = "创建时间")
Date createTime;
@ApiModelProperty(value = "更新时间")
Date updateTime;
@ApiModelProperty(value = "该题目出现的试卷列表")
@ManyToMany(mappedBy = "questionList")
List<Paper> paperList;
@ApiModelProperty(value = "该题目出现的题库列表")
@ManyToMany(mappedBy = "questionList")
List<QuestionBank> questionBankList;
public Question() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getSubjectId() {
return subjectId;
}
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
public String getQuestionType() {
return questionType;
}
public void setQuestionType(String questionType) {
this.questionType = questionType;
}
public Integer getKnowledgePointId() {
return knowledgePointId;
}
public void setKnowledgePointId(Integer knowledgePointId) {
this.knowledgePointId = knowledgePointId;
}
public Integer getTeacherId() {
return teacherId;
}
public void setTeacherId(Integer teacherId) {
this.teacherId = teacherId;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public String getQuestionStem() {
return questionStem;
}
public void setQuestionStem(String questionStem) {
this.questionStem = questionStem;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public List<Paper> getPaperList() {
return paperList;
}
public void setPaperList(List<Paper> paperList) {
this.paperList = paperList;
}
public List<QuestionBank> getQuestionBankList() {
return questionBankList;
}
public void setQuestionBankList(List<QuestionBank> questionBankList) {
this.questionBankList = questionBankList;
}
}
2.实体类Teacher
@Entity
@ApiModel(value = "教师实体")
@Table(name = "teacher")
public class Teacher {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@ApiModelProperty(value = "教师的id")
Integer id;
@ApiModelProperty(value = "姓名")
String name;
@ApiModelProperty(value = "教职工编号")
String teacherNumber;
@ApiModelProperty(value = "密码")
String password;
@ApiModelProperty(value = "盐值")
String salt;
public Teacher() {
}
public Teacher(String teacherNumber, String password) {
this.teacherNumber = teacherNumber;
this.password = password;
}
public static List<String> getModifiableAttributes() {
List<String> list = new ArrayList<>();
list.add("name");
return list;
}
public void updateAttr(String attrName, String value) {
switch (attrName) {
case "name":
this.name = value;
break;
default:
break;
}
}
public Integer getId() {
return id;
}
public String getName() {
return name;
}
public void setId(Integer id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public String getTeacherNumber() {
return teacherNumber;
}
public void setTeacherNumber(String teacherNumber) {
this.teacherNumber = teacherNumber;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt;
}
}
3.查询返回的字段封装成实体类
@Entity
public class QuestionVO {
private Integer questionId;
private String questionStem;
private String answer;
private String teacherName;
private Long id;
public QuestionVO(Integer questionId,String questionStem,String answer,
String teacherName){
this.answer=answer;
this.questionStem=questionStem;
this.questionId=questionId;
this.teacherName=teacherName;
}
public QuestionVO() {
}
public String getTeacherName() {
return teacherName;
}
public void setTeacherName(String teacherName) {
this.teacherName = teacherName;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public String getQuestionStem() {
return questionStem;
}
public void setQuestionStem(String questionStem) {
this.questionStem = questionStem;
}
@Id
public Integer getQuestionId() {
return questionId;
}
public void setQuestionId(Integer questionId) {
this.questionId = questionId;
}
}
4.在Repository中的查询语句
@Repository
public interface QuestionRepository extends JpaRepository<Question, Integer>, PagingAndSortingRepository<Question, Integer>, JpaSpecificationExecutor<Question>{
@Query("select new QuestionVO(q.id,q.questionStem,q.answer,t.name) from Question q,Teacher t where q.teacherId=t.id" )
public List<QuestionVO> findAllVO();
}
但是在程序执行的时候,会自动在数据库生成空的QuestionVO表。