2012-08-27 27 views
5

Tôi đã xem Controller.groovy mã nguồn và có vẻ như các hoạt động CRUD không giao dịch (ít nhất là rõ ràng).Có phải giàn giáo grails giao dịch theo bất kỳ cách nào không?

Nếu tôi đúng, điều đó có nghĩa là giàn giáo động không nên được sử dụng trong sản xuất đúng không? Có cách nào để thực hiện giao dịch (tức là tôi có thể sửa đổi Controller.groovy hoặc bất kỳ thứ gì không?)?

Trả lời

3

Bạn chính xác, giàn giáo không giao dịch. Điều này có thể là do các nguồn dữ liệu hỗ trợ grails và hibernate không hỗ trợ các giao dịch, chẳng hạn như công cụ MyISAM của MySQL.

Bạn có thể thay đổi nó được giao dịch như sau:

  1. chạy grails install-templates
  2. chỉnh sửa src/templates/scaffolding/Controller.groovy

Grails sẽ sử dụng mẫu này cho generate-controller hoặc bất cứ khi nào nó tự động tạo ra một bộ điều khiển giàn giáo.

+1

Trong khi điều này là chính xác về mặt kỹ thuật, thực hiện công việc giao dịch trong Bộ điều khiển thực sự không thực sự tốt nhất. Tất cả công việc giao dịch nên được thực hiện trong một Dịch vụ. Sử dụng giàn giáo nhẹ. Không đặt mã giàn giáo vào sản xuất. – Gregg

+1

Tôi không đồng ý rằng có bất kỳ điều gì xấu hoặc không sẵn sàng sản xuất về giàn giáo. Bằng cách sử dụng giàn giáo (tôi không giả định rằng cái hộp-out-of-the-box, mà là một số sửa đổi đã được thực hiện). Giàn giáo cung cấp cho bạn một chiến thắng bảo trì rất lớn và, nếu bất cứ điều gì, _forces_ bạn để giữ cho bộ điều khiển của bạn mỏng. – cdeszaq

+0

Giao dịch trong lớp dịch vụ là phương pháp hay nhất, nhưng tôi sẽ không chuyển các hoạt động CRUD thành dịch vụ chỉ dành cho giao dịch. Ngoài ra, giàn giáo là một cách mạnh mẽ để cung cấp giao diện CRUD đơn giản, ví dụ: quản trị với tối thiểu mã và nỗ lực, và thích hợp cho một loạt các ứng dụng. – ataylor

Các vấn đề liên quan