Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA-如何使实体像值对象一样工作(不使用嵌入式)_Jpa_Entity_Value Objects - Fatal编程技术网

JPA-如何使实体像值对象一样工作(不使用嵌入式)

JPA-如何使实体像值对象一样工作(不使用嵌入式),jpa,entity,value-objects,Jpa,Entity,Value Objects,我使用的是JPA2.1,我有一个名为“遭遇”的实体对象,它与许多其他不同大小的对象(称为卫星对象)有一对一的关系。我希望这些卫星对象的行为类似于值对象,并在保存新的遭遇实例时自动替换。我读过许多文章,这些文章展示了如何通过使卫星对象可嵌入对象而不是一对一关系中的实体来实现这种行为。这将很好地工作,除了任何一次“遭遇”都只需要大量卫星物体中的一小部分。将它们嵌入到一个表中会浪费大量的表空间,并使遭遇表变得更加复杂 那么,有没有一种方法可以让一对一关系中的实体表现得像一个值对象,而无需编写大量代码来

我使用的是JPA2.1,我有一个名为“遭遇”的实体对象,它与许多其他不同大小的对象(称为卫星对象)有一对一的关系。我希望这些卫星对象的行为类似于值对象,并在保存新的遭遇实例时自动替换。我读过许多文章,这些文章展示了如何通过使卫星对象可嵌入对象而不是一对一关系中的实体来实现这种行为。这将很好地工作,除了任何一次“遭遇”都只需要大量卫星物体中的一小部分。将它们嵌入到一个表中会浪费大量的表空间,并使遭遇表变得更加复杂


那么,有没有一种方法可以让一对一关系中的实体表现得像一个值对象,而无需编写大量代码来检查它是否存在,然后删除它,然后保留新的实体?

您可以使用级联选项来实现这一点(或至少是其中的一部分)检查此项了解更多详细信息谢谢,我还没有消化链接中的所有信息,但我没有看到我的问题的清晰映射。我的遭遇实体永远不会被删除,但随着时间的推移,卫星对象会被添加、修改和替换。每当我有一个现有的卫星对象,并且客户端创建了另一个带有“new”的卫星对象时,就会出现“replicate entry for key”错误,这样就不会保留ID。是否存在删除和替换一对一映射实体的级联类型?OneToOne(级联=全部,删除=真)