如果实体模型有关系但是数据库中的数据(视图)没有关系并且不一致,将会发生什么?

时间:2020-06-01 09:42:56

标签: spring jpa spring-data-jpa

我的问题是Spring JPA是否会为每个查询抛出异常?

我的意思是,可以说数据库中的表之间没有任何关系(FK)。这是不好的设计,但您不能更改它,并且它不取决于您。

但是您知道数据本身应该是存在关系的。

这就是为什么要创建具有所有关系的实体模型的原因。

但是正如我所说的,数据库中没有真正的关系。

而且在某一点上,数据库中的数据不一致。

如果存在不一致,Spring JPA会抛出异常吗,否则它只会返回不一致的数据?

1 个答案:

答案 0 :(得分:0)

我假设带有“关系”的意思是“外键”。

JPA不在乎外键。 它关心的是数据是否与实体上的映射信息匹配。

因此,如果您有一个实体A引用了一个ID为B的实体b,但是这样的B不存在,您最终可能会遇到异常。 或者,您可能只得到一个A且对B的引用为空。 如果引用被标记为强制引用,则实际上可能首先不能加载A,因为使用了联接,因此根本不返回任何数据。

侧面说明:所有这些取决于您正在使用的JPA实现,而不是Spring Data JPA。