データベースのチェックが必要な項目をチェックするとき、どのレイヤーに実装していますか
今回は前提条件として、画面あたり3~8個程度のチェックを想定しています。
文字の桁数はアノテーションを使って、チェックを行う予定なので気にしていません。
どう実装するのがベストなのか悩んでいます。
みなさんは、どのように実装されているのでしょうか?
私の考えている案①
// Controller public String test(Form form) { this.service.form = form; // formをそのままserviceへ渡す this.service.validate(); } // Service public boolean validate() { // いくつチェック項目があっても、このメソッドで完結させる // エラーは直接、formに全部セット form.addError("xxxx"); return true; //全件、チェックをパスしたときだけtrueを返す }
私の考えている案②
// Controller public String test(Form form) { List<XXXX> data1 = this.service.findXXXX(form.XXXX); if (data1.size == 0) { // Serviceに検索させて、その結果をControllerでセット // FatControllerになりそうで心配 } List<YYYYY> data2 = this.service.findYYYY(form.YYYYY); if (data2.size == 0) { }
私の考えている案③
public String test(Form form) { // Serviceに検索させて、結果 + エラーメッセージをオブジェクトに詰めるControllerに返す CheckResult result = this.service.checkXXXX(form.XXXX); if (result.hasError) { form.error = result.errorMessage; } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。