jpa(二)----jpa @Query注解 原生insert\delete\update\select语句



-- 如果@Query注解加上nativeQuery=true 则查询语句使用原生sql,不加则使用HQL

一、jpa 原生insert的sql语句:

    @Modifying
    @Query(value = "insert into t_sys_org_user(org_id,user_id) values(?1,?2)",nativeQuery = true)
    int addUserToOrg(Long orgId,Long userId);

        jpa 原生delete的sql语句:

 @Modifying
    @Query(value = "delete from t_sys_org_user where org_id=?1 and user_id=?2",nativeQuery = true)
    int deleteUserFromOrg(Long orgId,Long userId);

        jpa 原生update的sql语句:

@Modifying
    @Query(value = "update t_sys_user set status=0 where user_id=?1",nativeQuery = true)
    int updateUserStatus(Long userId);

        jpa 原生select的sql语句:

//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);
    }

二、jpa hql中使用in关键字

@Query(value = "select distinct r from SysRoleDTO r left join r.sysOrgDTOSet o where (?1 is null or r.name like ?1) "+
           "and (?2 is null or r.code like ?2) and o.id in (?3)")    Page<SysRoleDTO> findAllRole(String name, String code, List<Long> ids, Pageable pageable);

@Transactional
	@Modifying
	@Query("delete from MeetingQRSign where mpid = ?1")
	void deleteByMpid(String mpid);

	@Modifying
	@Query("update AccountEntity w set w.version=:version where w.id=:id")
	void update(@Param("version") int version,@Param("id") String id);





评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值