Non è possibile farlo utilizzando l'annotazione prePersist all'interno della propria entità. Il problema con il tuo approccio è che non puoi accedere all'entitàManager all'interno del tuo modello, ma avresti bisogno di questo per dirgli di non ostentare la tua identità.
È possibile utilizzare un listener di eventi, come spiegato nella documentazione dottrina: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners
Si potrebbe quindi ascoltare l'evento prePersist, vedere se qualsiasi entità del tipo in questione chiede di essere persistente e vedere se la sua condizione è vero. In tal caso, potresti dire all'ententManager di staccare l'entità.
MA Credo che si potrebbe fare molto più semplice impostando il contenuto alla notnull e trasformando il contenuto nullo se la lunghezza è < 1. Facendo in modo di persistere entità corretta è parte della logica di dominio e io non lo farei questo nell'entità stessa o in qualche ascoltatore di eventi. Se hai molti di questi ascoltatori e condizioni, finisci con molti vincoli magici di cui nessuno è a conoscenza.
Accanto all'approccio precedente è possibile implementare un metodo valido() e verificare se sono soddisfatte determinate condizioni. La logica del tuo dominio manterrà l'entità solo se valid() è true. Un approccio ancora migliore consiste nell'usare il validatore symfony2 per convalidare la propria entità e quindi agire di conseguenza.
Grazie, cercherò di creare un listener di eventi. – user1501227
L'accesso alla documentazione è limitato, si prega di controllare il collegamento. Ricevo "Non hai accesso a questa versione". –
Grazie per il tuo suggerimento. Il nuovo collegamento è http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners. Ho modificato la risposta originale di conseguenza! – Sgoettschkes