在Spring框架下,使用jpa框架查询数据有以下两种方式:
1,使用框架的转化功能,参考:jpa官方文档
2,当业务sql语句比较复杂时,以上的关键字转化不能满足要求,可以使用框架的@Query注解,例如
@Query(value = "SELECT * FROM BANK_ACCOUNT ba WHERE ba.ACCOUNT_ID = ?1 and ba.STATUS = '0' and ba.BANK_ACCOUNT_NUMBER_HASH = ?2", nativeQuery = true)
List<Bank> findByAccountIdAndAccountNumberHash(long accountId, String accountNumberHash);
其中:
nativeQuery = true时,是可以执行原生sql语句,所谓原生sql,也就是说这段sql拷贝到数据库中,然后把参数值给一下就能运行了
?1与?2分别对应方法的第一个参数accountId与第二个参数accountNumberHash