eclipse中搭建springboot学习(10)---JPA使用4(多张表 ManyToOne)

xiaoxiao2025-07-07  8

新增SchoolDTO

package com.example.demo1025.dto;

import java.io.Serializable; import java.util.List;

import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table;

@Entity @Table(name = "school") public class SchoolDTO implements Serializable {

    private static final long serialVersionUID = 1L;     @Id     @GeneratedValue     private int id;

    private String schoolName;

    // 一个学校对应多个学生,用list     // CascadeType.PERSIST 设置 :级联 保存/新建 操作 。新建 学校和学生 的时候,保存新建的学校那么新建的学生也同时被保存     // CascadeType.REMOVE 级联删除,学校删除的时候学生也会被删除     @OneToMany(mappedBy = "school", cascade = { CascadeType.PERSIST, CascadeType.REMOVE })     private List<StudentDTO> studentList;

    public int getId() {         return id;     }

    public void setId(int id) {         this.id = id;     }

    public String getSchoolName() {         return schoolName;     }

    public void setSchoolName(String schoolName) {         this.schoolName = schoolName;     }

    public List<StudentDTO> getStudentList() {         return studentList;     }

    public void setStudentList(List<StudentDTO> studentList) {         this.studentList = studentList;     }

}

在 StudentDTO新增school

package com.example.demo1025.dto;

import java.io.Serializable;

import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import javax.persistence.Table;

@Entity @Table(name = "student") public class StudentDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id     @GeneratedValue     @Column(name = "student_id")     private int id;

    private String studentName;

    // 设置cascade,否则会报错object references an unsaved transient instance - save the     // transient instance before flushing :     // com.example.demo1025.dto.StudentDTO.score ->     // com.example.demo1025.dto.ScoreDTO     @OneToOne(cascade = CascadeType.ALL)     private ScoreDTO score;

    // 多个学生对应一个学校     @ManyToOne     private SchoolDTO school;

    public int getId() {         return id;     }

    public void setId(int id) {         this.id = id;     }

    public String getStudentName() {         return studentName;     }

    public void setStudentName(String studentName) {         this.studentName = studentName;     }

    public ScoreDTO getScore() {         return score;     }

    public void setScore(ScoreDTO score) {         this.score = score;     }

    public SchoolDTO getSchool() {         return school;     }

    public void setSchool(SchoolDTO school) {         this.school = school;     }

}

 新增StudentSchoolRepository

package com.example.demo1025.dao;

import org.springframework.data.jpa.repository.JpaRepository;

import com.example.demo1025.dto.SchoolDTO;

public interface StudentSchoolRepository extends JpaRepository<SchoolDTO, Integer> {

}

StudentScoreService 新增addSchoolStudent添加方法

@Autowired     private StudentSchoolRepository studentSchoolRepository;

 /**      * 级联添加      */ 

public void addSchoolStudent() {         SchoolDTO schoolDTO = new SchoolDTO();         schoolDTO.setSchoolName("春田花花幼儿园");

        StudentDTO studentDTO = new StudentDTO();         studentDTO.setStudentName("小花");         studentDTO.setSchool(schoolDTO);

        StudentDTO studentDTO1 = new StudentDTO();         studentDTO1.setStudentName("小花1");         studentDTO1.setSchool(schoolDTO);

        List<StudentDTO> studentList = new ArrayList<>();         studentList.add(studentDTO);         studentList.add(studentDTO1);

        schoolDTO.setStudentList(studentList);         studentSchoolRepository.save(schoolDTO);

    }

 /**      * 级联删除      */     public void deleteSchool() {         studentSchoolRepository.deleteById(21);     }

StuentScoreController 新增addStudentSchool方法

    @RequestMapping("addStudentSchool")     @ResponseBody     public String addStudentSchool() {         studentScoreService.addSchoolStudent();         return "添加成功";     } 

 @RequestMapping("deleteStudentSchool")     @ResponseBody     public String deleteStudentSchool() {         studentScoreService.deleteSchool();         return "删除成功";     }

转载请注明原文地址: https://www.6miu.com/read-5032722.html

最新回复(0)