PringData JPA一对多多对一多对多关联
2024-09-01 19:16:09
一、一对多、多对一
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);
}
}
最新文章
- IP 地址分类(A、B、C、D、E类)
- Arduino 极速入门系列–1 点亮 LED
- Camera中对焦模式总结
- facedetect
- [Redux] Fetching Data on Route Change
- Windows 中默认安装的.Net 版本
- windows上putty访问ubuntu
- JAVA单元测试Junit
- 设置ListView的item多选
- [原]iOS中 Web 页面与 Native Code 的一种通信方式
- 2.动手实操Apache ZooKeeper
- Ruby 2.x 命名参数特性简介
- Git之生成SSH公钥
- 【转】通过js获取系统版本以及浏览器版本
- tomcat配置说明,配置不用访问工程名
- 从源代码解释Android事件分发机制
- Hexo初体验
- centos crontab 计划任务 设置与查看
- 20169205实验四 Android程序设计
- 【LeetCode】76. Minimum Window Substring