JMS序列化程序反序列化相关条令实体



我有这样的json:

"relatedCollection": [
  {
     id:1,
     name: "something",
     country: {
           id:1
          }
  },
    {
     id:2,
     name: "something 2",
     country: {
           id:1
          }
  }
]

数据库中存在具有共同国家/地区的两个相关项目。如果我使用JMSserializer进行反序列化,并且它会创建COUNTRY实体的两个不同实例

当你应用合并原则时,适当地将国家设置为"某事",但不要设置为"某物2"。所以保存后的结果是:

"relatedCollection": [
  {
     id:1,
     name: "something",
     country: {
           id:1
          }
  },
    {
     id:2,
     name: "something 2",
     country: null
  }
]

对于学说来说,有两个不同的实体被称为国家,它们是独立的。教义把第一个附加起来,适当地保存它,但不能把第二个附加起来。

只有当合并具有相同相关实体id的集合时,关系ManyToOne才会发生这种情况。如果你保存国家1和国家2,没有重复的国家,所以保存财产。

有什么解决方案吗?

JMS序列化程序只进行对象反序列化,它不为您处理条令对象。

你必须进行任何类型的合并,级联合并,例如

http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/working-with-associations.html#transitive-持久级联操作

您可以编写一个反序列化Listener\Subscriber来自动合并

相关内容

  • 没有找到相关文章

最新更新