diff --git a/tests/Doctrine/Tests/ORM/Functional/MergeCompositeToOneKeyTest.php b/tests/Doctrine/Tests/ORM/Functional/MergeCompositeToOneKeyTest.php new file mode 100644 index 00000000000..007d55fe6db --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/MergeCompositeToOneKeyTest.php @@ -0,0 +1,62 @@ +_schemaTool->createSchema(array( + $this->_em->getClassMetadata(__NAMESPACE__ . '\MergeCompositeToOneKeyCountry'), + $this->_em->getClassMetadata(__NAMESPACE__ . '\MergeCompositeToOneKeyState'), + )); + } + + public function testIssue() + { + $country = new MergeCompositeToOneKeyCountry(); + $country->country = 'US'; + $state = new MergeCompositeToOneKeyState(); + $state->state = 'CA'; + $state->country = $country; + + $this->_em->merge($country); + $this->_em->merge($state); + } +} + +/** + * @Entity + */ +class MergeCompositeToOneKeyCountry +{ + /** + * @Id + * @Column(type="string", name="country") + * @GeneratedValue(strategy="NONE") + */ + public $country; +} + +/** + * @Entity + */ +class MergeCompositeToOneKeyState +{ + /** + * @Id + * @Column(type="string") + * @GeneratedValue(strategy="NONE") + */ + public $state; + + /** + * @Id + * @ManyToOne(targetEntity="MergeCompositeToOneKeyCountry") + * @JoinColumn(name="country", referencedColumnName="country") + */ + public $country; +}