تغییر اطلاعات datapage در wise

0 رأی
میانگین بازدید روزانه 0.6892 بازدید
بعد از انجام عملیات search نتیجه جستجوی انجام شده را تغییر دادیم و بنابراین totalsize و pagenumber تغییر کرده است. چگونه می توان این موارد را تغییر داد؟ (

مثال مورد نظر بدین صورت است: هر request تعدادی Responsible دارد که ممکن است از هر واحدی باشند و Role مرتبط را دارند. میخواهیم لیست درخواستهایی که مسئولی از واحد خواسته شده ندارد را جستجو کنیم. آیا می توان از fillcriteria استفاده کرد. در حال حاضر ما super.search را انجام می دهیم و بعد مواردی را که می خواهیم حذف می کنیم ولی در مورد datapage به مشکل برخوردیم.

)

متشکرم
سوال 4 ماه قبل در تالار برنامه نویسی توسط gatity (139 امتیاز)
برچسب گذاری مجدد در 3 ماه قبل توسط Saeed Zarinfam
بله، به طور کلی برای اضافه‎کردن criteriaهای مخصوص میشه از fillCriteria در DAO استفاده کرد. برای راهنمایی بیشتر ارتباط بین موجودیت‎های درگیر در کوئری رو بگید.

2 جواب

0 رأی
 
بهترین جواب

روش درست برای اعمال یک یا چند فیلتر آن است که فیلتر (های) مورد نظر را به بخش Restriction (Where Clause) کوئری اضافه نمائیم و اجازه دهیم که اعمال تمامی فیلترها توسط DBMS مدیریت شود. برای اینکار می توان متد fillCriteria را در کلاس Dao مورد نظر Override کرد:


@Override
	protected void fillCriteria(CriteriaQuery criteria, Root<GeoUnitEntity> root, SearchFilter<Object> searchFilter,
			String sortProperty, boolean sortAscending, JpaCriteriaAssociationMap criteriaAssociationMap) {
		super.fillCriteria(criteria, root, searchFilter, sortProperty, sortAscending, criteriaAssociationMap);
		CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
		
		// Create subquery here ...
		
		Predicate notExists = cb.not(cb.exists(subquery));
		criteria.where(cb.and(criteria.getRestriction(), notExists));
	}

برای ایجاد subquery مورد نیاز خود می توانید از https://stackoverflow.com/questions/13859780/building-a-query-using-not-exists-in-jpa-criteria-api کمک بگیرید.

جواب 3 ماه قبل توسط mahdi mostafazadeh_5 (157 امتیاز)
انتخاب شده در 3 ماه قبل توسط gatity
0 رأی

سلام. ارتباط بین درخواست و مسئول درخواست بدین صورت است. هر مسئول ممکن است role متفاوتی داشته باشد. به طور مثال درخواست می تواند هم  از واحد فروش و هم مهندسی فروش مسئول داشته باشد. برای به دست آوردن لیست درخواستهایی که مسئولی با نقش کارشناسی مهندسی فروش ندارند باید چگونه اطلاعات را بدست آوریم؟ متشکرم

ارتباط درخواست و مسئول درخواست

جواب 4 ماه قبل توسط gatity (139 امتیاز)
منظورم از role همان نقش پرتالی است. منظورم از واحد هم پستهایی است که مثلا نقش کارشناسی فروش داخل و کارشناسی مهندسی فروش را دارند. ما یک postentity داریم که از پست پرتالی دیتا می گیرد ولی entity ای برای role پرتال در پروژه تعریف نکرده ایم. در حال حاضر می خواهیم درخواستهایی را لیست کنیم که هیچ مسئولی با postentity  که مثلا آن postentity نقش پرتالی کارشناسی فروش داخل را نداشته باشد را بیاورد.
1) برای کوئری زدن مستقیم، وجود موجودیت role و ارتباط آن با post الزامی است. دو) اگر نمی‎خواهید role رو اضافه کنید، به کمک PostQueryFactory، می‌توانید postهای دارای roleهای مورد نظر خود را واکشی کنید و سپس کوئری خودتون را با توجه به post_idها بزنید. البته اگر تعداد سمت‌هایی که این نقش‌ها را دارند زیاد باشد، راه دوم پیشنهاد نمی‎شود.

سوال های مشابه

+1 رأی
1 جواب میانگین بازدید روزانه 0.44108 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.32105 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.4550 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.2833 بازدید
سوال 3 ماه قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.4661 بازدید
سوال 4 ماه قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
+1 رأی
0 جواب میانگین بازدید روزانه 0.2548 بازدید
سوال 6 ماه قبل در تالار برنامه نویسی توسط gatity (139 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.2957 بازدید
سوال 6 ماه قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.2449 بازدید
سوال 6 ماه قبل در تالار برنامه نویسی توسط nirvana (99 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.2875 بازدید
سوال 8 ماه قبل در تالار برنامه نویسی توسط Saeed Mirshams (146 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.2464 بازدید
کانال تلگرام جواب یاب
...