Ho guardato il codice sorgente Controller.groovy
e sembra che le operazioni CRUD non siano transazionali (almeno in modo esplicito).Il ponteggio dei graal è in qualche modo transazionale?
Se ho ragione, vuol dire che lo scaffolding dinamico non dovrebbe essere usato in produzione così com'è? C'è un modo per renderlo transazionale (ad esempio, posso modificare Controller.groovy
o altro?)?
Anche se ciò è tecnicamente corretto, eseguire il lavoro di transazione in un controller non è la procedura migliore. Tutto il lavoro transazionale dovrebbe essere svolto in un servizio. Utilizzare le impalcature leggermente. Non mettere in produzione il codice dello scaffolding. – Gregg
Non sono d'accordo sul fatto che ci sia qualcosa di intrinsecamente cattivo o non pronto per la produzione sulle impalcature. Usando il ponteggio (non sto assumendo l'out-of-the-box, ma piuttosto che alcune modifiche sono state fatte). L'impalcatura ti garantisce un'enorme manutenibilità e, se possibile, ti obbliga a mantenere sottosopra i tuoi controller. – cdeszaq
Le transazioni nel livello di servizio sono una buona pratica, ma non vorrei spostare le operazioni CRUD in un servizio esclusivamente per transazioni. Inoltre, lo scaffolding è un modo potente per fornire una semplice interfaccia CRUD per es. amministrazione con un minimo di codice e impegno, ed è appropriato per una vasta gamma di applicazioni. – ataylor