JPA多个实体一个表/视图

时间:2013-06-28 15:52:04

标签: jpa eclipselink

我的任务是在使用JPA(EclipseLink)的现有应用程序上修复许多错误。

在这个应用程序中,通常有多个实体通过SQL视图间接共享同一个表。例如,我可能有一个名为 TEmployeeInfo 的实体和另一个名为 VActiveEmployeeInfo 的实体。当第一个映射到表时,第二个映射到与第一个表相同的表的视图。

这似乎会导致缓存问题,因为使用第一个实体(表)的任何更新都不会在第二个(视图)中立即可用。

我的怀疑是否正确?

如果是这样,有哪些可能的步骤可以纠正重构大部分应用程序的缺点?

1 个答案:

答案 0 :(得分:1)

如果相同的行被映射两次,那么如果更新对象,缓存可能会变得陈旧。您可以让两个类都使用真实表,也可以使用继承。

否则,您可以禁用此类的共享缓存。

http://wiki.eclipse.org/EclipseLink/FAQ/How_to_disable_the_shared_cache%3F