1
0
mirror of synced 2025-03-27 18:33:53 +03:00

Merge branch 'DDC-2199'

This commit is contained in:
Benjamin Eberlei 2012-12-16 12:58:01 +01:00
commit b6fd203355
6 changed files with 51 additions and 10 deletions

View File

@ -230,11 +230,20 @@ class XmlDriver extends FileDriver
if (isset($xmlRoot->field)) { if (isset($xmlRoot->field)) {
foreach ($xmlRoot->field as $fieldMapping) { foreach ($xmlRoot->field as $fieldMapping) {
$mapping = $this->columnToArray($fieldMapping); $mapping = $this->columnToArray($fieldMapping);
if (isset($mapping['version'])) {
$metadata->setVersionMapping($mapping);
}
$metadata->mapField($mapping); $metadata->mapField($mapping);
} }
} }
foreach ($mappings as $mapping) { foreach ($mappings as $mapping) {
if (isset($mapping['version'])) {
$metadata->setVersionMapping($mapping);
}
$metadata->mapField($mapping); $metadata->mapField($mapping);
} }

View File

@ -297,6 +297,10 @@ class YamlDriver extends FileDriver
} }
} }
if (isset($mapping['version'])) {
$metadata->setVersionMapping($mapping);
}
$metadata->mapField($mapping); $metadata->mapField($mapping);
} }
} }

View File

@ -139,14 +139,25 @@ abstract class AbstractMappingDriverTest extends \Doctrine\Tests\OrmTestCase
*/ */
public function testFieldMappings($class) public function testFieldMappings($class)
{ {
$this->assertEquals(3, count($class->fieldMappings)); $this->assertEquals(4, count($class->fieldMappings));
$this->assertTrue(isset($class->fieldMappings['id'])); $this->assertTrue(isset($class->fieldMappings['id']));
$this->assertTrue(isset($class->fieldMappings['name'])); $this->assertTrue(isset($class->fieldMappings['name']));
$this->assertTrue(isset($class->fieldMappings['email'])); $this->assertTrue(isset($class->fieldMappings['email']));
$this->assertTrue(isset($class->fieldMappings['version']));
return $class; return $class;
} }
/**
* @depends testFieldMappings
* @param ClassMetadata $class
*/
public function testVersionedField($class)
{
$this->assertTrue($class->isVersioned);
$this->assertEquals("version", $class->versionField);
}
/** /**
* @depends testEntityTableNameAndInheritance * @depends testEntityTableNameAndInheritance
* @param ClassMetadata $class * @param ClassMetadata $class
@ -793,6 +804,12 @@ class User
*/ */
public $groups; public $groups;
/**
* @Column(type="integer")
* @Version
*/
public $version;
/** /**
* @PrePersist * @PrePersist
@ -847,6 +864,9 @@ class User
'columnName' => 'user_email', 'columnName' => 'user_email',
'columnDefinition' => 'CHAR(32) NOT NULL', 'columnDefinition' => 'CHAR(32) NOT NULL',
)); ));
$mapping = array('fieldName' => 'version', 'type' => 'integer');
$metadata->setVersionMapping($mapping);
$metadata->mapField($mapping);
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO); $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
$metadata->mapOneToOne(array( $metadata->mapOneToOne(array(
'fieldName' => 'address', 'fieldName' => 'address',

View File

@ -35,6 +35,9 @@ $metadata->mapField(array(
'columnName' => 'user_email', 'columnName' => 'user_email',
'columnDefinition' => 'CHAR(32) NOT NULL', 'columnDefinition' => 'CHAR(32) NOT NULL',
)); ));
$mapping = array('fieldName' => 'version', 'type' => 'integer');
$metadata->setVersionMapping($mapping);
$metadata->mapField($mapping);
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO); $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
$metadata->mapOneToOne(array( $metadata->mapOneToOne(array(
'fieldName' => 'address', 'fieldName' => 'address',

View File

@ -47,6 +47,8 @@
</field> </field>
<field name="email" column="user_email" type="string" column-definition="CHAR(32) NOT NULL" /> <field name="email" column="user_email" type="string" column-definition="CHAR(32) NOT NULL" />
<field name="version" type="integer" version="true" />
<one-to-one field="address" target-entity="Address" inversed-by="user"> <one-to-one field="address" target-entity="Address" inversed-by="user">
<cascade><cascade-remove /></cascade> <cascade><cascade-remove /></cascade>
<join-column name="address_id" referenced-column-name="id" on-delete="CASCADE" on-update="CASCADE"/> <join-column name="address_id" referenced-column-name="id" on-delete="CASCADE" on-update="CASCADE"/>

View File

@ -30,6 +30,9 @@ Doctrine\Tests\ORM\Mapping\User:
type: string type: string
column: user_email column: user_email
columnDefinition: CHAR(32) NOT NULL columnDefinition: CHAR(32) NOT NULL
version:
type: integer
version: true
oneToOne: oneToOne:
address: address:
targetEntity: Address targetEntity: Address