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


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

 

 

 

posted @ 2019-12-08 18:46  林染plus  阅读(9862)  评论(0编辑  收藏  举报