父类
@Data
public class Person{
private Integer id;
private Date insertTime;
private Date updateTime;
private Boolean name;
private String remark;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date timeStart;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date timeEnd;
@Transient
private Integer flag;
}
子类:
@Entity
@Table(name = “table_student”, schema = “库名”)
public class Student extends Person {
private int id;
private String studentName;
private Date insertTime;
private Date updateTime;
private int age;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "studentName")
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
@Basic
@Column(name = "insertTime",updatable = false)
@Override
public Date getInsertTime() {
return insertTime;
}
@Override
public void setInsertTime(Date insertTime) {
this.insertTime = insertTime;
}
@Basic
@Column(name = "updateTime")
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Basic
@Column(name = "age")
public Integer getAge() {
return age;
}
public void setType(Integer age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Student that = (Student) o;
if (studentName != null ? !studentName.equals(that.studentName) : that.studentName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
return super.hashCode();
}
}
@Entity
@Table(name = “table_Teacher”, schema = “库名”)
public class Teacher extends Person {
private int id;
private String teacherName;
private Date insertTime;
private Date updateTime;
private String courseName;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "teacherName")
public String getTeacherName() {
return teacherName;
}
public void setTeacherName(String teacherName) {
this.teacherName = teacherName;
}
@Basic
@Column(name = "insertTime",updatable = false)
@Override
public Date getInsertTime() {
return insertTime;
}
@Override
public void setInsertTime(Date insertTime) {
this.insertTime = insertTime;
}
@Basic
@Column(name = "updateTime")
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Basic
@Column(name = "courseName")
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Teacher that = (Teacher) o;
if (teacherName != null ? !teacherName.equals(that.teacherName) : that.teacherName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
return super.hashCode();
}
}
获取实体service:
/**
- 根据Id、type获取相应的实体
- @param id
- @param type
- @return
*/
public Person getDetailByIdAndType(int id, Integer type) {
Person person = new Person();
// 学生
if (type == 1) {
person = studentDao.getEntity(Student.class, id);
} else if (type == 2) {
// 老师
person = teacherDao.getEntity(Teacher.class, id);
}
return person
}
/**
- 根据Id、type修改相应的备注内容
- @param userInfo
- @param id
- @param type
- @param remark
- @return
*/
public void updateRemark(Integer id, Integer type, String remark) {
Person person = getDetailByIdAndType(id, type);
if (!Objects.isNull(person)) {
person.setRemark(remark);
person.setUpdateTime(new Date());
String beforeRemark = person.getRemark();
//注:这边通过person就可以保存到具体的对象。比如id是学生表里的记录,则保存到学生表///对应记录的remark字段。之前没弄懂这块,导致代码写了一堆判断(冤枉路)
personDao.update(person);
//日志记录
logService.save(id,beforeRemark,remark);
}
}
springMvc控制器:
@RequestMapping(value = “/detail”)
@ResponseBody
public ModelAndView getDetail(Integer id, Integer type) {
ModelAndView view = new ModelAndView(“ui/jsp/showDetail”);
Person person = service.getDetailByIdAndType(id, type);
view.addObject(“person”, person);
view.addObject(“type”, type);
return view;
}
showDetail界面使用:
学生名: | ${person.studentName} |
老师名: | ${person.teacherName} |