我有以下数据库设置:
Tag (Integer id)
ItemTag (Integer id, Integer tag_id, Integer item_id, Integer item_type)
Artwork (Integer id)
Photo (Integer id)
我尝试使用 ItemTag 中的 item_id 字段作为艺术品 id 和照片 id,如下所示
class ItemTag {
/**
* @Id @GeneratedValue
* @Column(type="integer")
*/
private $id;
/**
* @Column(type="integer")
*/
private $item_type;
/**
* @ManyToOne(targetEntity="Artwork")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $artwork;
/**
* @ManyToOne(targetEntity="Photo")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $photo;
/**
* @ManyToOne(targetEntity="Tag")
*/
private $tag;
}
当我尝试保存“照片项目”时,上面的设置不会产生任何错误并且工作正常,但是当保存“艺术品项目”时,item_id 为 NULL。
有没有办法将两种关系保存到一个 item_id 字段中?