You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate JpaRepository的findById方法对应SQL及过滤条件在哪查看

解答

findById 执行SQL的查看位置

你可以通过以下几种方式查看实际执行的SQL:

  • 项目配置Hibernate日志打印(最常用)
    如果你用的是Spring Boot框架,在application.properties配置文件中添加以下配置即可在控制台直接输出SQL及参数:
    spring.jpa.show-sql=true
    spring.jpa.properties.hibernate.format_sql=true
    logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace
    
    普通Hibernate项目可以在hibernate.cfg.xml中添加配置:
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    
  • 数据库端查询
    Oracle端可以开启审计日志,或者直接查询V$SQL系统视图抓取最近执行的对应SQL语句。

findById 使用的过滤条件

findById是JpaRepository自带的默认实现,过滤规则如下:

  • 核心过滤条件为匹配你MyTableRacord实体类中被@Id注解标注的主键字段,最终生成的SQL结构为:
    SELECT [所有实体映射字段] FROM [MyTableRacord对应Oracle表名] WHERE [主键字段名] = ?
    
    其中?绑定的值就是你调用方法时传入的Long id参数。
  • 如果你在实体类或者项目中配置了全局Hibernate过滤规则(比如@Where注解、软删除过滤、多租户隔离规则等),这些规则的条件也会自动追加到WHERE子句中。

内容的提问来源于stack exchange,提问作者likejudo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:15:02