栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

已解决映射问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

已解决映射问题

三个表,分别是movie(电影表),type(类型)和movie_type。

- 电影表


 


- 类型表

 


- movie_type表

 


- bean层

-movie

import java.util.List;

public class Movie {
    private Integer movieId;

    private String movieName;

    private  String pic;
     //从表实体包含一个主表实体的对象引用
    private List listType;

    public Integer getMovieId() {
        return movieId;
    }

    public void setMovieId(Integer movieId) {
        this.movieId = movieId;
    }

    public String getMovieName() {
        return movieName;
    }

    public void setMovieName(String movieName) {
        this.movieName = movieName;
    }

    public String getPic() {
        return pic;
    }

    public void setPic(String pic) {
        this.pic = pic;
    }

    public List getListType() {
        return listType;
    }

    public void setListType(List listType) {
        this.listType = listType;
    }

    @Override
    public String toString() {
        return "Movie{" +
                "movieId=" + movieId +
                ", movieName='" + movieName + ''' +
                ", pic='" + pic + ''' +
                ", listType=" + listType +
                '}';
    }

}

  -   type

import java.util.List;

public class Type {

    private Integer typeId;

    private String typeName;
     //
    private List listMovie;

   //set和get方法

    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public List getListMovie() {
        return listMovie;
    }

    public void setListMovie(List listMovie) {
        this.listMovie = listMovie;
    }
    //toString方法
    @Override
    public String toString() {
        return "Type{" +
                "typeId=" + typeId +
                ", typeName='" + typeName + ''' +
                ", listMovie=" + listMovie +
                '}';
    }
}


- DAO层
 


public interface MovieDao {

//根据ID查电影
     List getMovieById(int id);
}

- mapper


 
       
       
       
       
        
           
       
   
   

    SELECT a.movie_id,
           a.movie_name,
           c.type_name typeName,
           a.movie_pic,
           
    FROM movie a
    LEFT JOIN movie_type b
    ON a.movie_id = b.movie_id
    LEFT JOIN type c
    ON b.type_id = c.type_id WHERe a.movie_id  =  #{movieId}


问题在这(  c.type_name typeName,)


- serviceImpl

@Service
public class MovieSerImpl implements MovieService {
    @Autowired
    private MovieDao movieDao;

    @Override
    public List getMovieId(int movieId) {
        return movieDao.getMovieById(movieId);
    }
}

-Test

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestMovie {
    @Autowired
    MovieSerImpl movieSer;
@Test
    public void getSjService() {
     //设置要查找的电影id
    Integer a=1;
    //电影集合
    List list =movieSer.getMovieId(a);
    //集合长度
    int b= list.size();
    //输出集合长度
    System.out.println("list长度"+b);
    //遍历集合,并输出
    for (Movie movie:list){
        System.out.println(movie);
    }
       // System.out.println(movieSer.getMovieId(a));

    }
}

查询

list长度1
Movie{movieId=1, movieName='寒战', pic='movie——1', listType=[]}

结果

这里结果为空listType=[]

出现的原因是我复制

SELECT a.movie_id, a.movie_name,c.type_name typename ,a.movie_pic FROM movie a
     LEFT JOIN movie_type b ON a.movie_id = b.movie_id
     LEFT JOIN type c ON b.type_id = c.type_id WHERe a.movie_id = 1

SQL语句时候用了别名  typeName 导致我这个listType[]为空,现在将别名删去就正常有结果映射了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号