【发布时间】:2021-02-18 06:34:08
【问题描述】:
这个问题可能有点主观。
假设我有一个 Post 实体,它具有 User 关联。这个User 是实体的所有者。现在我想获取所有者 ID(只是 ID),这是执行此操作的有效方法吗?
- post.getUser().getId()
- SELECT u.userId from Post p JOIN User u ON p.user.email = u.email where p.id = 1
我发现第二个效率更高,因为我们没有带来额外的列并且只获取必填字段,因此消耗的带宽更少。
这些将在Spring-Data-Jpa@Transactional下执行
【问题讨论】:
-
能否请您显示您的
Post和User实体映射的相关部分 -
可能做不到。用户有 12-15 列和帖子 8-10。两者都有 5 个以上的关联,都是 LAZY 获取的(所以这里不用担心)。
-
您的问题与用户帖子关联有关,因此所有其他列都可以跳过。
标签: hibernate jpa spring-data-jpa