sono nuovo in Doctrine 2 sto cercando di capire come fare l'ereditarietà dell'indice con esso.Doctrine 2 Index Eredità
Quello che sto cercando di ottenere è avere una classe base che definisce alcune colonne di default insieme agli indici necessari per tutte le entità all'interno dell'applicazione.
Esempio: tutte le tabelle nella mia applicazione avranno created_on
e modified_on
, quindi ho preparato una base @MappedSuperclass
con quelle 2 colonne in essa.
Ecco il mio codice:
<?php
/**
* @MappedSuperclass
*/
abstract class EntityAbstract
{
/**
* @Column(type="datetime", name="created_on", nullable=false)
*/
protected $createdOn;
/**
* @Column(type="datetime", name="modified_on", nullable=true)
*/
protected $modifiedOn;
}
/**
* @Entity
* @Table(name="member", indexes={@Index(name="credential", columns={"email_address", "password"})})
*/
class Member extends EntityAbstract
{
/**
* @Column(type="string", name="full_name", length=50)
*/
protected $fullName;
/**
* @Column(type="string", name="email_address", length=50, unique=true, nullable=false)
*/
protected $emailAddress;
/**
* @Column(type="string", name="password", length=40, nullable=false)
*/
protected $password;
}
?>
voglio rispettare created_on
ad essere un indice, così ho messo @Index
annotazione nella classe base per questa particolare colonna. Sperando che questo comporterà 2 indici per Member
che è la combinazione created_on
e email_address
+ password
. Ciò tuttavia porta gli indici della classe base a essere sovrascritti dalla classe figlio, pertanto created_on
non è un indice.
/**
* @MappedSuperclass
* @Table(indexes={@Index(name="timestampcreated", columns={"created_on"})})
*/
abstract class EntityAbstract
Come ottengo ciò in Doctrine 2? Ho esaminato l'ereditarietà di una singola tabella, ma la mia comprensione è che è pensato per scopi diversi.