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

appی با دیتابیسی جدا از دیتابیس پرتال داریم و  entity ی auditable ی داریم که در لیست تاریخچه تغییراتش مقدار تغییر دهنده null است. در صورتی که شماره  id کاربر به عنوان committerId در db ذخیره میشود اما زمان لود اطلاعات،فیلد ترانزینت committerName را پر نمیکند .

لطفا راهنمایی بفرمایید.

باتشکر

1 پاسخ

0 امتیاز
قبل توسط (157 امتیاز)
ویرایش شده قبل توسط

از آنجایی که در سیستم ها و موجودیت های مختلف ممکن است تعابیر متفاوتی از committerName مطلوب خاطر باشد (نام و نام خانوادگی، نام کاربری، ....) این فیلد عمداً خالی گذاشته شده است تا بسته به نیاز سفارشی سازی شود. می توانید با override کردن متد loadVersion با توجه به نیازتان اقدام به پر کردن فیلد منظور نمایید. بدیهی است که با توجه به در دسترس بودن id این کار امکان پذیر است. نمونه ای از Override متد مربوطه در لایه manager را در ادامه مشاهده می نمایید:

@Override
	public DataPage<VersionEntity<ir.asta.tutorial.dl.entities.ContentEntity>> searchVersions(
			java.lang.String pk, HttpServletRequest request) {
		DataPage<VersionEntity<ContentEntity>> versions = super.searchVersions(pk, request);
		Iterator<VersionEntity<ContentEntity>> itr = versions.getItems().iterator();
		while(itr.hasNext()) {
VersionEntity<ContentEntity> version = itr.next();
   UserQuery userQuery = userQueryFactory.create();
   userQuery.addUserIdentifier(version.getRevInfo().getCommitterId());
   UserDTO user = userQuery.singleResult();
   version.getRevInfo().setCommitterName(user.getUsername());
		}
		return versions;
	}

 

قبل توسط (89 امتیاز)
ویرایش شده قبل توسط
ممنون
اما با این شرایط باید یک manager پایه ایجاد کرد و همه managerها از ان ارث بری داشته باشند یا برای هر manager این متد را پیاده سازی کرد.
آیا بهتر نیست اطلاع پرسنلی کاربر (شامل شماره پرسنلی (نام کاربری)، نام و نام خانوادگی )در committerName  ذخیره شود چون در اکثر موارد فقط به این اطلاعات نیاز هست،  اگر نیاز به اطلاعات بیشتر بود override متد را داشته باشیم ؟
قبل توسط (186 امتیاز)
به نظر من این استدلال خوبی نیست.
چقدر بهتر است که یک پیاده سازی مناسب ارائه شود و اگر در سیستمی رفتار متفاوتی مورد انتظار بود override  شود.

سوالات مشابه

0 امتیاز
1 پاسخ 352 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط nirvana (89 امتیاز)
+1 امتیاز
1 پاسخ 408 بازدید
+2 امتیاز
1 پاسخ 535 بازدید
+1 امتیاز
1 پاسخ 309 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Saeed Mirshams (186 امتیاز)
+1 امتیاز
1 پاسخ 230 بازدید
+1 امتیاز
1 پاسخ 557 بازدید
0 امتیاز
0 پاسخ 327 بازدید
+1 امتیاز
1 پاسخ 286 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط gatity (139 امتیاز)
...