【发布时间】:2011-10-15 17:55:21
【问题描述】:
我正在尝试在 Doctrine 中创建一个可选的 OneToOne 映射。
我有一个包含所有可用城市和邮政编码的表格(此表格不应更改),我有一个包含地址和映射城市的表格。但有时我不想在一开始就将城市添加到我的地址中(也许稍后会添加)。但是当我不向地址添加城市时,地址上的持久性会给我一个反射异常,因为没有像 'null' 这样的对象,它应该是 de City 对象。
我不想每次都在数据库中添加一个空城市,因为城市表中不应该添加或删除任何内容。
有什么建议吗?或者我错过了什么?
class Address{
/**
* @OneToOne(targetEntity="City")
* @JoinColumn(name="city_id", referencedColumnName="id")
*/
private $city = '';
我考虑过的可能解决方案:
- 在数据库中创建一个空的城市对象并将其始终分配给新创建的地址对象(可能会导致大量开销)
- 创建与城市数组的 ManyToMany 关系,因此可以添加零个或多个城市(我可以在我的 Address 对象中限制多个城市)但是我需要一个映射表...
【问题讨论】:
标签: orm doctrine mapping one-to-one