问题标签 [entitygraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
15 浏览

java - 将 EntityGraphJpaSpecificationExecutor 添加到存储库后找不到类型的属性

我有一个与另一个实体有关系的实体:

我有一个完美运行的存储库:

但是当我在我的存储库中扩展 EntityGraphJpaSpecificationExecutor 时,它似乎无法识别没有实体图的以前的存储库方法,即使存储库仍在实现 findById 方法。我得到以下异常:

我的 pom.xml 包含以下依赖项:

谁能解释为什么会这样?我该如何解决这个错误?实现EntityGraphJpaSpecificationExecutor后是否必须重写findOne方法?

0 投票
1 回答
16 浏览

hibernate - 使用 JPA @EntityGraph 排除某些属性

我有一个名为的类Program,它包含一组文件(和其他基本属性),实现为它自己的类,表示关系模型中ProgramFile的多值复合属性。Program我正在使用带有 Hibernate 的 Spring Boot。

集合的ProgramFile实现如下Program

的代码ProgramFile是:

ProgramFile.file是大型 PDF 文件,我的目标是序列化为ProgramJSON。为了避免 N+1 问题,我使用 @EntityGraph 来提示 Hibernate 只执行一个 SQL 查询来检索所有数据:

我面临的问题是我只对 感兴趣ProgramFile.fileName,而不对ProgramFile.file. 因为后者是大文件,所以 SQL 查询会很慢,我不希望该属性包含在 JSON 中。

问题:有什么方法可以指示 Hibernate 不获取ProgramFile.file或实现 JSON 序列化的替代方法,不包括它?