当前位置: 首页 > 面试题库 >

如何将实体另存为Doctrine 2中的另一行

赵嘉悦
2023-03-14
问题内容

假设我有实体$e。是否有任何通用方法将其存储为另一行,该行将具有相同的实体数据但具有另一个主键?

为什么需要这个:我正在实现某种临时数据库模式,而不是更新行,而只需要创建另一行。


问题答案:

尝试克隆并将以下方法添加到您的实体中

public function __clone() {
    $this->id = null;
}

您可能需要先分离实体,然后再保留它。我现在没有开发机可以方便地对此进行测试

$f = clone $e;
$em->detach($f);
$em->persist($f);
$em->flush();

更新资料

刚刚尝试使用简单的SQLite演示。您不需要做任何事情。以下对我有用,而无需添加__clone()方法或执行其他任何异常操作

$new = clone $old;
$em->persist($new);
$em->flush();

刷新后,该$new实体具有新的ID,并保存为数据库中的新行。

我仍然会通过该__clone()方法将ID属性设为空,因为从纯模型视图来看,它是有意义的。

更新2

深入研究Doctrine代码,这是因为生成的代理类__clone()使用这一重要行实现

unset($this->_entityPersister, $this->_identifier);


 类似资料:
  • 问题内容: 我正在尝试将canvas元素另存为png图像。这是我现在的代码,但是不幸的是,它不起作用: 我想看看Python中的解决方案。我还希望在屏幕快照的末尾看到不需要裁剪的解决方案。 问题答案: 您可以调用将画布作为PNG base64字符串获取。这是一个工作示例:

  • 我将JPA与Hibernate和QueryDSL(v.4.0.5)一起使用。我拥有以下实体: 如何找到与给定标记集匹配的所有文章?我想我应该从以下几点开始: 其中,ce应为集合表达式。很明显,我不知道如何设置这个。 有什么解决方案吗?

  • 问题内容: 我想编写一个Python脚本,该脚本读取Excel电子表格并将其某些工作表另存为CSV文件。 我怎样才能做到这一点? 我已经找到了用于从Python读取和写入Excel文件的第三方模块,但据我所知,它们只能以Excel(即* .xls)格式保存文件。如果我错了,那么一些示例代码将展示如何使用这些模块进行操作。 我还遇到了一个我不太了解的解决方案,但该解决方案似乎特定于Windows,因

  • 我有两张桌子。括号中的属性名和列名。 表Animal有字段:animalId(animalId)、name(name)、owner(owner_id)owner与owner对象和owner_id列是多对一关系 表所有者有字段:ownerId(owner_id),name 我想选择一个ID为5的动物的主人。冬眠怎么能做到呢?

  • 问题内容: 我是新手,现在遇到了麻烦。所以我需要做的就是将此数组另存为iPhone文件的json文件。 然后可以将其读回到另一个数组中。有人可以告诉我该怎么做吗?或提供确切的代码来完成此操作。 编辑:我发现了一个例子。这是他们设置数据的方式: 并且您可以通过以下方式访问它: 但是我需要能够执行同样的操作,但是需要保存在文档文件夹中的文件中。 问题答案: 我建议您使用SwiftyJSON框架。究其文

  • 问题内容: 是否可以从python列表构造NumPy数组? 问题答案: 首先,建议您阅读NumPy的 快速入门教程,该教程可能会帮助您解决这些基本问题。 您可以从列表中直接创建一个数组,如下所示: 或以相同的方式从嵌套列表中获取: