jpa 为什么我不能使用别名过滤时做提取联接?

5cg8jx4n  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(61)

我有一个突然的问题,为什么我不能使用别名过滤时,做提取连接?
作为对这个问题的回答,似乎你通常会说数据库状态和对象状态之间的一致性被破坏了。如果使用别名进行过滤,得到的数据将少于数据库中的实际数据。然而,如果你只需要返回过滤后的结果作为结果,我认为可以使用为什么数据库状态和对象状态不一致有关系?所以我考虑了一下,但这似乎是下一个大事件

  • 可能难以维持
  • 缓存问题

但我不知道这两个问题是否真的是大问题。维护可能很困难,但我不确定它会有多困难,我也不确定缓存问题会受到那些代码的多大影响。

7lrncoxx

7lrncoxx1#

JPA不允许这样做,我相信是因为返回的实体是受管理的。JPA提供者负责计算对实体的任何更改。如果读入的实体与数据库中的实际状态不匹配(即如果您能够过滤关系),则很难确定发生了什么变化-如果您尝试添加已过滤掉的内容,JPA提供程序是否应该默默忽略它或抛出异常,因为它已经存在于DB表示中?提供者可以并且确实允许对Map进行过滤,但是它们通常更“静态”,因此可重复

相关问题