我有User
这样的课程:
{
...
Long userID;
...
List<UserMovieRole> userMovieRoles=...
}
像这样的电影课:
{
...
Long movieID;
...
List<UserMovieRole> userMovieRoles=...
}
我还有另一个此类的UserMovieRole类:
{
Long userMovieRoleID;
Role role;
...
User user;
...
Movie movie;
}
现在,我想在UserMovieRole
上进行查询,并选择给出用户ID和movieID的位置。
在sql中,我可以简单地编写代码,也可以简单地编写联接和sql选择位置。
但是在spring boot jpa查询中,看来我做不到,该怎么办?
这是我尝试过的:
@Query("select umr from UserMovieRole umr where umr.user.userID=?1 and umr.movie.movieID=?2")
@Query("select umrj from UserMovieRole.user full join UserMovieRole.movie umrj where umrj.userID=?1 and umrj.movieID=?2")
我不知道其中任何一个是否正确,实际的作法是什么?
答案 0 :(得分:0)
像在SQL中@Query
中编写查询一样,然后添加注释的另一个属性为nativeQuery = true
,它将像在SQL中一样运行查询。
通过在查询前面添加:
来传递查询中的参数。另外,不要忘记在自己的报价中添加@Param
。
类似这样的东西:
@Query(value = "select umr from UserMovieRole umr join user u on u.id = umr.userId where u.userId (#got it by joining tables.) = :userId and umr.movieID=:movieId", nativeQuery = true)
returnType yourMethod(@Param("userId") userId, @Param("movieId") movieId);