使用springboog+jpa框架,因为业务需求不能使用封装好的save()方法,故需要在jpa容器里使用@Query注解写sql完成
起初,直接@Query(value="insert into 对象名(字段名) values (?1)")插入,但是一直报错unexpected token: VALUES
即sql语句有误,各种改,没用,后来网上查,大多数说法是jpa的jpql不支持insert into ,不经意看到一篇文章里,写的语句后面有一些不一样,试之,完美解决,所以记录下来: @Query(value = "sql语句",nativeQuery = true)
这里先要认识并加入一个注解 @Modifying:
jpa容器中使用,当使用@Query写jpql时,如果是删除或修改操作,需要加入此注解进行修饰. 以通知 SpringData, 这是一个 UPDATE 或 DELETE 操作 ;默认情况下,是只读,所以查询不需要
然后就是@Query写语句了:
jpa 原生insert的sql语句:
jpa 原生delete的sql语句:
jpa 原生update的sql语句:
jpa 原生select的sql语句:
jpa hql中使用in关键字