+1 امتیاز
قبل در برنامه نویسی توسط (9 امتیاز)
آیا wise برای validation در لایه business امکانی داره؟ در کدوم لایه؟ اگر برای validation نیاز به نوشتن متدهای bussiness ی باشد چطور؟

1 پاسخ

+1 امتیاز
قبل توسط (1.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

در wise نسخه 5 به بعد برای صحت سنجی از jsr303 استفاده می شود. اگر می خواهید پارامترهای یک متد صحت سنجی بشوند در کلاس مربوط به پارامترها Annotation  های صحت سنجی را قرار بدهید. سپس روی متد مورد نظر @Valid قرار بدهید. به اینصورت:

	public class FooModel {
		
		@Max(100) 
		private long bar;
		...
	}
	
	public class FooService {
		
		@Valid
		public void save(FooModel model) {
			
		}
	}

در اینصورت با فعال شدن یک ValidationAspect صحت سنجی انجام می شود و در صورت عدم صحت پارامتر پیغام مناسب (با در نظر گرفتن Locale فعال) در قالب ValidationException پرتاب می شود.

اگر نمی خواهید از Aspect و Annotation استفاده کنید متد save از کلاس AbstractHibernateDao را ملاحظه کنید.

بهتر است این کار در کلاسهای Manager یا Service انجام بشود.

 

قبل توسط (9 امتیاز)
آیا بهتر تبود کلا validation به جای save در لایه DAO در لایه Manager انجام بشه؟ هم از لحاظ مفهومش و هم نیاز محتملش به متدهای دیگر این لایه در حالتهای پیچیده تر Validation (حالتهای پیچیده تر منظور حالتهایی هست که به روال bussiness خاص و حتی queury و محاسبات نیاز هست)؟
قبل توسط (1.2هزار امتیاز)
مستحضر هستید که hibernate صحت سنجی را انجام می دهد مشروط بر اینکه پیاده سازی jsr303 در classpath وجود داشته باشد و آن را غیرفعال نکرده باشید.
چون پیغام خطای آن قابل بومی سازی نبود ما این اشکال ORM را در DAO اصلاح کردیم. به طور کلی فرمایش شما صحیح است اگر خود شما می خواهید صحت سنجی کنید بهتر است در لایه سرویس و در کلاسهای Manager یا ServiceImpl باشد.

سوالات مشابه

0 امتیاز
1 پاسخ 573 بازدید
+1 امتیاز
1 پاسخ 479 بازدید
0 امتیاز
2 پاسخ 9.4هزار بازدید
0 امتیاز
0 پاسخ 283 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط farhad99 (0 امتیاز)
0 امتیاز
1 پاسخ 486 بازدید
+1 امتیاز
1 پاسخ 415 بازدید
0 امتیاز
1 پاسخ 388 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط nirvana (89 امتیاز)
0 امتیاز
1 پاسخ 500 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط nirvana (89 امتیاز)
0 امتیاز
2 پاسخ 700 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط gatity (139 امتیاز)
...