老师好,关于springboot中使用jpa调用sql的问题

来源:13-10 redis缓存的使用(下)

慕粉4354032

2019-06-13

老师好,在如下代码中OrderDetailRepository继承了JpaRepository,并自定义了findByOrderId方法

public interface OrderDetailRepository extends JpaRepository<OrderDetail, String> {

List<OrderDetail> findByOrderId(String orderId);

}
但是JpaRepository中并没有我们自定义的这个findByOrderId方法

public interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor {
List findAll();

  List<T> findAll(Sort var1);

  List<T> findAll(Iterable<ID> var1);

  <S extends T> List<S> save(Iterable<S> var1);

  void flush();

  <S extends T> S saveAndFlush(S var1);

  void deleteInBatch(Iterable<T> var1);

  void deleteAllInBatch();

  T getOne(ID var1);

  <S extends T> List<S> findAll(Example<S> var1);

  <S extends T> List<S> findAll(Example<S> var1, Sort var2);

}

那么问题来了:自定义的findByOrderId方法不需要自己编写sql?很奇怪仅有一个自定义的方法名是如何完成匹配sql的?

写回答

2回答

廖师兄

2019-06-13

你想呀,这方法名是和数据库定义的字段对应,所以肯定是动态的实现的,在父类里肯定找不到。

0
0

慕粉4354032

提问者

2019-06-13

找了些博客,大概了解了一下jpa

https://blog.csdn.net/bird_tp/article/details/83651651

0
0

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6414 学习 · 5257 问题

查看课程