我正在使用 Doctrine2 ORM 将数据导入到一个新的 Symfony2 项目中。
所有新记录都应该有一个自动生成的主键。但是,对于我的导入,我想保留现有的主键。
我使用它作为我的实体配置:
type: entity
id:
id:
type: integer
generator: { strategy: AUTO }
我还为实体类中的 id 字段创建了一个 setter。
但是,当我坚持并将这个实体刷新到数据库时,我手动设置的键不会被保留。
什么是最好的解决方法或解决方案?
最佳答案
您可能已经考虑过这一点,但我的方法是将导入的生成器策略设置为“无”,以便您可以在客户端代码中手动导入现有 ID。然后一旦导入完成,将生成器策略改回“自动”,让 RDBMS 从那里接管。条件可以确定是否调用了 id setter。祝你好运 - 让我们知道你最终决定使用什么。
关于doctrine-orm - 如何在 Doctrine2 中手动设置主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042696/