首页 > 解决方案 > hibernate 生成的请求不符合书面请求

问题描述

有一些疯狂的事情发生在我身上。我从事一个使用 Jhipster 生成的 Spring Boot Hibernate 项目。我做了一个简单的 JPQL 请求,如下所示

select item from ItemObject item where (item.ins between :dateBegin and :dateEnd) or (item.mod between :dateBegin and :dateEnd)

我把 show_sql = true 可以看到 Hibernate 生成的请求。首先,Hibernate 生成的正确请求显示在控制台窗口中。但是一秒钟后,会生成一个巨大的请求(几十页)并且结果是无休止的(考虑到请求的长度和花费的时间)。这完全是疯了。我从来没有见过。我必须补充一点,这个请求在几天前几乎是即时的。你能帮助我吗 ?由于我不在工作,我无法向您展示所显示的巨大请求,但我只是问您是否已经看到了。所以不要因为这篇文章给我差评

标签: hibernatespring-boot

解决方案


我把以下日志记录参数

logging:
    file: logs/application-test.log
    level:
        ROOT: DEBUG
        com.package.vol: INFO
        io.github.jhipster: DEBUG
        org:
          hibernate: 
            SQL:
              TRACE
            type:
               descriptor:
                  sql:
                    BasicBinder:
                      TRACE

日志显示它生成了许多请求。例如 ItemObject (table0) 链接到 Object1 ( table1) Object2 (table2) 等等......它会生成请求

select tb1.property1, .........., tb1.property50 
from table1 tb1
left outer join table0 on ...
left outer join table2 on ....
.........
left outer join table10 on ...
where tb1.item_id = ?

这对于链接到table0的每个表,即table1,table2等


推荐阅读