Spring Data JPA 通过不同的方式实现查询操作,Java大厂面试真题

/**

  • 在CustomerDao接口中添加查询方法

*/

@Query(value = “from Customer where custName = ?”)

public Customer findByName(String custName);

/**

  • 在CustomerFindTest中测试根据name查询

*/

@Test

public void testFindJPQL(){

Customer customer=customerDao.findByName("客户1");

System.out.println(customer);

}




**2\. 根据客户名称与客户id查询客户,使用jpql形式实现**



`配置jpql语句,使用应使用@Query注解, jpql语句 : jpql : from Customer where custName = ? and custId = ?`  

对于多个占位符参数:赋值的时候,默认的情况下,占位符的位置需要和方法参数中的位置保持一致,但是可以指定占位符参数的位置 `? 索引` 的方式,指定次占位的取值来源。



/**

  • 在CustomerDao接口中添加查询方法

*/

@Query(value = “from Customer where custName = ? and custId = ?”)

//@Query(value = “from Customer where custId = ?2 and custName = ?1”)

public Customer findCustNameAndId(String name,Long id);

/**

  • 测试根据客户名称与id查询

*/

@Test

public void testFindCustNameAndId(){

Customer customer=customerDao.findCustNameAndId("客户1",1l);

System.out.println(customer);

}




**3\. 使用jpql语句实现更新操作**



`配置jpql语句,使用应使用@Query注解, jpql语句 : jpql : update Customer set custName = ? where custId = ?`  

于查询语句不同,我们还需要对更新操作进行声明`@Modifying :当前执行的更新操作`,同时springDataJpa中使用jpql完成更新或删除操作需要手动添加事务的支持,因为方法在执行结束后默认会执行回滚事务,我们还需要使用`@Rollback(value =false)` 取消回滚



/**

  • 在CustomerDao接口中添加更新语句的方法

*/

@Query(value = “update Customer set custName = ?2 where custId = ?1”)

@Modifying

public void updateCustomer(long custId,String custName);

/**

  • 测试jpql的更新操作

*/

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值