2010-04-13 07:40:45 +04:00
< ? php
2014-04-07 16:43:25 +04:00
namespace Doctrine\Tests\ORM\Functional\Ticket ;
2010-04-13 07:40:45 +04:00
class DDC493Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
protected function setUp ()
{
parent :: setUp ();
$this -> _schemaTool -> createSchema ( array (
$this -> _em -> getClassMetadata ( __NAMESPACE__ . '\DDC493Customer' ),
$this -> _em -> getClassMetadata ( __NAMESPACE__ . '\DDC493Distributor' ),
$this -> _em -> getClassMetadata ( __NAMESPACE__ . '\DDC493Contact' )
));
}
public function testIssue ()
{
2010-07-23 08:55:33 +04:00
$q = $this -> _em -> createQuery ( " select u, c.data from " . __NAMESPACE__ . " \\ DDC493Distributor u JOIN u.contact c " );
2011-10-29 20:48:34 +04:00
$this -> assertEquals (
2014-03-21 22:39:51 +04:00
strtolower ( 'SELECT d0_.id AS id_0, d1_.data AS data_1, d0_.discr AS discr_2, d0_.contact AS contact_3 FROM DDC493Distributor d2_ INNER JOIN DDC493Customer d0_ ON d2_.id = d0_.id INNER JOIN DDC493Contact d1_ ON d0_.contact = d1_.id' ),
2011-10-29 20:48:34 +04:00
strtolower ( $q -> getSQL ())
);
2010-04-13 07:40:45 +04:00
}
}
/**
* @ Entity
* @ InheritanceType ( " JOINED " )
* @ DiscriminatorColumn ( name = " discr " , type = " string " )
* @ DiscriminatorMap ({ " distributor " = " DDC493Distributor " , " customer " = " DDC493Customer " })
*/
class DDC493Customer {
/**
* @ Id
* @ Column ( type = " integer " )
* @ GeneratedValue ( strategy = " AUTO " )
*/
public $id ;
/**
* @ OneToOne ( targetEntity = " DDC493Contact " , cascade = { " remove " , " persist " })
* @ JoinColumn ( name = " contact " , referencedColumnName = " id " )
*/
public $contact ;
}
/**
* @ Entity
*/
class DDC493Distributor extends DDC493Customer {
}
/**
* @ Entity
*/
class DDC493Contact
{
/**
* @ Id
* @ Column ( type = " integer " )
* @ GeneratedValue ( strategy = " AUTO " )
*/
public $id ;
/** @Column(type="string") */
public $data ;
}