Miré el código fuente Controller.groovy
, y parece que las operaciones CRUD no son transaccionales (al menos explícitamente).¿El andamio de Grails es transaccional de alguna manera?
Si estoy en lo cierto, ¿significa que los andamios dinámicos no se deben usar en producción como lo están? ¿Hay alguna forma de hacerlo transaccional (es decir, ¿puedo modificar Controller.groovy
o lo que sea?)?
Si bien esto es técnicamente correcto, hacer las transacciones en un Controlador no es realmente una mejor práctica. Todo el trabajo transaccional debe hacerse en un Servicio. Use andamios ligeramente. No ponga código de andamio en producción. – Gregg
No estoy de acuerdo en que exista algo intrínsecamente malo o que no esté listo para la producción sobre andamios. Al usar el andamio (no estoy asumiendo el out-of-the-box, sino que se han hecho algunas modificaciones). El andamiaje le brinda una gran ganancia de mantenimiento y, en todo caso, le obliga a mantener sus controladores delgados. – cdeszaq
Las transacciones en la capa de servicio es una práctica recomendada, pero no movería las operaciones CRUD a un servicio únicamente por transaccionalidad. Además, el andamiaje es una forma poderosa de proporcionar una interfaz CRUD simple, por ej. administración con un mínimo de código y esfuerzo, y es apropiado para una amplia gama de aplicaciones. – ataylor