我试图用两个指向同一个对象的复合外键构造一个对象,但它们似乎具有相同的数据,比如只在一个列 product_id 上进行连接。
class PostpaidProduct extends Product {
/**
* @ManyToOne(targetEntity="Bundle", fetch="EAGER", cascade={"persist"})
* @JoinColumn(name="bundle_voice_id", referencedColumnName="id")
*/
private $bundleVoice;
/**
* @ManyToOne(targetEntity="Bundle", fetch="EAGER", cascade={"persist"})
* @JoinColumn(name="bundle_data_id", referencedColumnName="id")
*/
private $bundleData;
/**
* @OneToMany(targetEntity="BundlePromo", mappedBy="product", fetch="EAGER", cascade={"persist"})
* @JoinColumns({
* @JoinColumn(name="id", referencedColumnName="product_id"),
* @JoinColumn(name="bundle_voice_id", referencedColumnName="bundle_id")
* })
*/
private $bundleVoicePromos;
/**
* @OneToMany(targetEntity="BundlePromo", mappedBy="product", fetch="EAGER", cascade={"persist"})
* @JoinColumns({
* @JoinColumn(name="id", referencedColumnName="product_id"),
* @JoinColumn(name="bundle_data_id", referencedColumnName="bundle_id")
* })
*/
private $bundleDataPromos;
}
我的映射有什么问题?是否可以有复合外键但不是主键?