1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
<?php
declare(strict_types=1);
namespace Doctrine\ORM\Mapping;
/**
* This attribute is used to override association mapping of property for an entity relationship.
*
* @Annotation
* @NamedArgumentConstructor
* @Target("ANNOTATION")
*/
final class AssociationOverride implements MappingAttribute
{
/**
* The name of the relationship property whose mapping is being overridden.
*
* @var string
* @readonly
*/
public $name;
/**
* The join column that is being mapped to the persistent attribute.
*
* @var array<JoinColumn>|null
* @readonly
*/
public $joinColumns;
/**
* The join column that is being mapped to the persistent attribute.
*
* @var array<JoinColumn>|null
* @readonly
*/
public $inverseJoinColumns;
/**
* The join table that maps the relationship.
*
* @var JoinTable|null
* @readonly
*/
public $joinTable;
/**
* The name of the association-field on the inverse-side.
*
* @var string|null
* @readonly
*/
public $inversedBy;
/**
* The fetching strategy to use for the association.
*
* @var string|null
* @psalm-var 'LAZY'|'EAGER'|'EXTRA_LAZY'|null
* @readonly
* @Enum({"LAZY", "EAGER", "EXTRA_LAZY"})
*/
public $fetch;
/**
* @param JoinColumn|array<JoinColumn> $joinColumns
* @param JoinColumn|array<JoinColumn> $inverseJoinColumns
* @psalm-param 'LAZY'|'EAGER'|'EXTRA_LAZY'|null $fetch
*/
public function __construct(
string $name,
$joinColumns = null,
$inverseJoinColumns = null,
?JoinTable $joinTable = null,
?string $inversedBy = null,
?string $fetch = null
) {
if ($joinColumns instanceof JoinColumn) {
$joinColumns = [$joinColumns];
}
if ($inverseJoinColumns instanceof JoinColumn) {
$inverseJoinColumns = [$inverseJoinColumns];
}
$this->name = $name;
$this->joinColumns = $joinColumns;
$this->inverseJoinColumns = $inverseJoinColumns;
$this->joinTable = $joinTable;
$this->inversedBy = $inversedBy;
$this->fetch = $fetch;
}
}
|