Python 官方文档:入门教程 => 点击学习
jpa原生sql@Query操作增删改查 1、jpa 原生update的sql语句: 1.命名参数(推荐使用此方式):可以定义好参数名,赋值时使用@Param("参数 名"
1.命名参数(推荐使用此方式):可以定义好参数名,赋值时使用@Param("参数 名"), 而不用管顺序。
为@Query注解传递参数的方式1:命名参数
2.索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。
@Modifying(clearAutomatically=true)
@Query(value = "update Product set status=1 where id=?1",nativeQuery = true)
void updateByProductId(String id);
@Modifying(clearAutomatically=true)
@Query(value = "delete from Productwhere id=?1",nativeQuery = true)
void delByProductId(String id);
@Modifying(clearAutomatically=true)
@Query(value="insert into product(id,name,cateGory,description,status) values(?1,?2,?3,?4,?5)",nativeQuery = true)
void addProduct(String id,String name,String cagetory,String description,String status);
还没弄懂。。。。。。。。。。。。
//jpa 多对多关系的表联合查询 DAO层
@Query(value = "select s from SysUserDTO s left join s.sysOrgDTOSet o where (?1 is null or s.username like ?1) and (?2 is null or o.name like ?2)")
Page<SysUserDTO> findByUsernameAndOrgName(String username, String orgName, Pageable pageable);
// service层
public Page<SysUserDTO> findByUsernameAndOrgName(String username, String orgName, Pageable pageable){
String name = (username==null)?null:"%"+username+"%";
String orgname = (orgName==null)?null:"%"+orgName+"%";
return sysUserDAO.findByUsernameAndOrgName(name,orgname,pageable);
}
这里在 @Query 注解中增加一个 nativeQuery = true 的属性,就可以采用原生 SQL 语句的方式来编写查询。
@Query(nativeQuery = true, value = "SELECT * FROM AUTH_USER WHERE name = :name1 OR name = :name2 ")
List<UserDO> findSQL(@Param("name1") String name1, @Param("name2") String name2);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: 使用jpa原生sql@Query操作增删改查
本文链接: https://lsjlt.com/news/128065.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0