Jpa操作数据库之@Query使用SQL语句

使用Jpa操作数据库除了简单的 save( ) ,findOne( ) , findBy*( ),delete( ) 等等还可以使用原生的SQL语句,下面就说一些简单的使用SQL语句操作。首先写一个接口继承 JpaRepository 接口,例如:

public interface FileRepository extends JpaRepository {
//后面的泛型,前面为实体类,后面为实体类的ID类型。
}
如果有些操作自带的  save( ) ,findOne( ) , findBy*( ),delete( ) 满足不了,那么我们就可以使用@Query注解了,话不多说直接上代码,我这里是根据用户ID,查询文件状态,1为未完成,2为已完成,传参数可以用?代替,然后后面跟上数字,跟下面传过来的参数对应上即可,比如uid=?1 ,这里就代表 uid=下面括号内的uid.
public interface FileRepository extends JpaRepository {
    //查询未完成
    @Query(value = "select * from f_file where status = 1 AND uid=?1", nativeQuery = true)
    List selectprosess(Long uid);

    //查询已完成
    @Query(value = "select * from f_file where status = 2 AND uid=?1", nativeQuery = true)
    List selectcomplete(Long uid);

}
value后面跟的就是我们地地道道的SQL语句,至于后面的nativeQuery = true 可写可不写,好像是写了传参字段必须跟数据库一致,反正我是带上了。有什么疑问欢迎私信我。


你可能感兴趣的:(Jpa操作数据库)