我有一个突然的问题,为什么我不能使用别名过滤时,做提取连接?作为对这个问题的回答,似乎你通常会说数据库状态和对象状态之间的一致性被破坏了。如果使用别名进行过滤,得到的数据将少于数据库中的实际数据。然而,如果你只需要返回过滤后的结果作为结果,我认为可以使用为什么数据库状态和对象状态不一致有关系?所以我考虑了一下,但这似乎是下一个大事件
但我不知道这两个问题是否真的是大问题。维护可能很困难,但我不确定它会有多困难,我也不确定缓存问题会受到那些代码的多大影响。
7lrncoxx1#
JPA不允许这样做,我相信是因为返回的实体是受管理的。JPA提供者负责计算对实体的任何更改。如果读入的实体与数据库中的实际状态不匹配(即如果您能够过滤关系),则很难确定发生了什么变化-如果您尝试添加已过滤掉的内容,JPA提供程序是否应该默默忽略它或抛出异常,因为它已经存在于DB表示中?提供者可以并且确实允许对Map进行过滤,但是它们通常更“静态”,因此可重复
1条答案
按热度按时间7lrncoxx1#
JPA不允许这样做,我相信是因为返回的实体是受管理的。JPA提供者负责计算对实体的任何更改。如果读入的实体与数据库中的实际状态不匹配(即如果您能够过滤关系),则很难确定发生了什么变化-如果您尝试添加已过滤掉的内容,JPA提供程序是否应该默默忽略它或抛出异常,因为它已经存在于DB表示中?提供者可以并且确实允许对Map进行过滤,但是它们通常更“静态”,因此可重复