设置:我有一个简单的网络应用程序,其中包含一些表单,每个表单都在一个单独的页面上。这些表格代表患者数据。患者与所有这些形式/实体之间存在一对一的关系。每个表单直接映射到db表和JPA实体,可能不是最好的架构,但它工作简单。 问题:如果表单/实体A和表单/实体B共享一个共同的数据块(一个或多个字段),那么在JPA中处理它的最佳方法是什么。 I.E. - 如果数据通过表单A插入,我需要它以表单B的形式显示为现有数据,反之亦然。换句话说,它是两个实体包含该数据的逻辑。我相信我必须将公共数据移动到它自己的实体中并以这种方式定义关系,但我已经尝试了很多不同的方式,没有一个让我一路走来,至少在基本的JPA方面。这可以通过纯JPA关系来完成,还是我必须编写一堆代码来手动完成。不专门寻找代码,只是正确的方法来建模这些数据。感谢。
答案 0 :(得分:1)
如果表单具有单独的表,其中包含公共数据的重复列,则无法直接共享数据。您需要将数据从一个实体复制到应用程序中的另一个实体。您可以使用Embeddable来定义公共数据,但仍然需要将此Embeddable从一个表单复制到另一个表单。
如果将公共数据放在第3个表中,则可以共享数据。表格A和表格B将定义与公共数据的OneToOne关系。