Java 2个应用和2个实体是否应该与JPA使用同一个表?
我喜欢在我的数据库中创建两个具有相同用户信息的java应用程序,但是一些与用户相关的信息仅与应用程序A相关,而其他信息仅与应用程序B相关 我的问题是,我是否可以为A编写用户类而忽略B的字段,反之亦然 或者,正确的加载字段的方法是懒惰的,让我永远不会使用的字段保持不变? 这会导致内存中的对象变大吗 或者,如果需要,最好冗余存储信息并在两个表/数据库中进行更新 请告诉我优点和缺点,或者什么会导致错误 如果这很重要,我会使用eclipselink和postgres thx@Vikdor但你的回答让更多的问题在我脑海中浮现:)Java 2个应用和2个实体是否应该与JPA使用同一个表?,java,jpa-2.0,eclipselink,Java,Jpa 2.0,Eclipselink,我喜欢在我的数据库中创建两个具有相同用户信息的java应用程序,但是一些与用户相关的信息仅与应用程序A相关,而其他信息仅与应用程序B相关 我的问题是,我是否可以为A编写用户类而忽略B的字段,反之亦然 或者,正确的加载字段的方法是懒惰的,让我永远不会使用的字段保持不变? 这会导致内存中的对象变大吗 或者,如果需要,最好冗余存储信息并在两个表/数据库中进行更新 请告诉我优点和缺点,或者什么会导致错误 如果这很重要,我会使用eclipselink和postgres thx@Vikdor但你的回答让更多
或者,将特定于a/B的信息保存在单独的对象/表中,并使用一个值标识用户(如他的电子邮件),这样我就有了3个数据库,1个用于a,1个用于a,1个用于B,1个用于B,1个用于基本用户信息(邮件、pw、用户名等)
只要应用程序只从用户表中读取与其相关的信息,就可以仅使用对给定应用程序有意义的属性定义实体 但是,如果要通过这些应用程序中的任何一个创建新的用户记录,则需要使用user的所有不可为null的属性定义实体。否则,插入将在数据库层失败 关于内存中对象的大小,如果您的用户表相当大,并且如果您不使用大多数属性,并且只执行读取操作,那么这可能是一个很好的优化,以定义仅具有所需属性的用户实体