SpringData JPA一对多多对一多对多关联
一、一对多、多对一
1、Country实体类
2、City实体类
3、CountryDao层
4、CityDao层
5.Controller
package com.zn.controller; import com.zn.dao.CityDao; import com.zn.dao.CountryDao; import com.zn.entity.City; import com.zn.entity.Country; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class CountryController { @Autowired CountryDao countryDao; CityDao cityDao; //级联添加 @RequestMapping("/OneToMany") @ResponseBody public String AddCountry(){ Country country1=new Country(); country1.setCountry_name("中国"); City city1=new City(); city1.setCity_name("中国香港"); City city2=new City(); city2.setCity_name("中国台湾"); //维护国家与城市的一对多关系 country1.getCitys().add(city1); country1.getCitys().add(city2); countryDao.save(country1); return "SUCCESS"; } //关联查询 @RequestMapping("/getCountry") @ResponseBody public Object getCountry(){ return countryDao.findAll(); } //级联删除 @RequestMapping("/deleteCountry") @ResponseBody public String deleteCountry(){ //检索国家实体 Country one=countryDao.getOne(5); countryDao.delete(one); return "SUCCESS"; } //由城市到国家的关联查询 @RequestMapping("/getCity") @ResponseBody public Object getCity(){ return countryDao.findAll(); } }
二、多对多
1、TStudent实体类
2、Teacher实体类
3、Stu_TeaDao
4、Tea_StuDao
5、Controller
package com.zn.controller; import com.zn.dao.Stu_TeaDao; import com.zn.dao.Tea_StuDao; import com.zn.entity.TStudent; import com.zn.entity.Teacher; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Arrays; import java.util.List; @Controller public class Stu_TeaController { @Autowired Stu_TeaDao stu_teaDao; @Autowired Tea_StuDao tea_stuDao; //添加学生和老师 @RequestMapping("/addstu") @ResponseBody public String addstu(){ TStudent student1=new TStudent("张三"); TStudent student2=new TStudent("李四"); TStudent student3=new TStudent("王五"); Teacher teacher1=new Teacher("小王子"); student1.getTeachers().add(teacher1); student2.getTeachers().add(teacher1); student3.getTeachers().add(teacher1); stu_teaDao.saveAll(Arrays.asList(student1,student2,student3)); return "SUCCESS"; } //多对多添加老师 @RequestMapping("/addTea") @ResponseBody public String addTea(){ Teacher teacher=new Teacher("王老师"); List<TStudent> all = stu_teaDao.findAll(); teacher.getStudents().addAll(all); tea_stuDao.save(teacher); return "SUCCESS"; } //多对多关联查询(慎用!!死循环!!) @RequestMapping("/getTea") @ResponseBody public Object getTea(){ return tea_stuDao.getOne(1); } }