加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Spring Data JPA如何在内部工作

发布时间:2020-12-15 01:49:04 所属栏目:大数据 来源:网络整理
导读:我正在阅读Spring Data JPA Tutorial. 我很困惑这个框架如何在内部工作. 让我说明具体情况 有特定的代码 /** * Custom finder */public List 这只是由以下界面取代 @Repositorypublic interface LocationJPARepository extends JpaRepository 相应的测试用例

我正在阅读Spring Data JPA Tutorial.
我很困惑这个框架如何在内部工作.
让我说明具体情况

有特定的代码

/**
 * Custom finder
 */
public List

这只是由以下界面取代

@Repository
public interface LocationJPARepository extends JpaRepository

相应的测试用例运行良好

@Test
public void testFindWithLike() throws Exception {
   List

新的测试案例

@Test
public void testFindWithLike() throws Exception {
   List

我的问题

>框架如何知道我是否正在寻找使用=或部分匹配的完全匹配使用类似运算符的SQL(它不能是方法名称?)
>如果它以某种方式决定我正在寻找部分匹配,那么仍有子选项…如名称%或%名称或%名称%…
>另外它如何决定案例在哪些方面很重要? (我可以通过使用与toUpper()类似的SQL来区分大小写,即通过比较大写的所有内容)
>(补充问题)是否有一种方法可以检查日志中的EXACT SQL在哪里?

希望我能够正确解释我的问题.如果我需要添加更多清晰度,请告诉我.

最佳答案
我建议您查看参考指南的Query Creation部分.它非常清楚地解释了规则.

例如,当您想要通过名字找到User并忽略大小写时,您将使用类似于findByFirstnameIgnoreCase的方法名称,这将转换为UPPER(x.firstame)= UPPER(?1)之类的条件.

默认情况下,当你有findByProperty方法时,匹配是准确的,所以如果你想拥有LIKE功能,你可以使用方法名称findByFirstnameLike,这反过来会转换成x.firstname喜欢的条件?1.

你可以结合这些关键字,但它可能会有点疯狂.我个人更喜欢使用@Query注释来处理更复杂的查询,以避免超长的存储库方法名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读