首页 > 编程语言 > 详细

SpringData JPA一对多多对一多对多关联

时间:2019-12-08 20:04:19      阅读:81      评论:0      收藏:0      [点我收藏+]

一、一对多、多对一

  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();
    }


}
View Code

二、多对多

  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);
    }
}

 

 

 

SpringData JPA一对多多对一多对多关联

原文:https://www.cnblogs.com/mayuan01/p/12006673.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!