Created
September 29, 2023 03:12
-
-
Save PhongGCS/1614b5f7dcb7baa0b780e99473d58e22 to your computer and use it in GitHub Desktop.
Entity Manager Spring boot
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Page<String> getSmsCampaignRecepientByCampaignId(SmsCampaignRecepientQueryRequest request, Pageable pageable) { | |
int pageNumber = pageable.getPageNumber(); | |
int pageSize = pageable.getPageSize(); | |
StringBuilder sql = new StringBuilder(); | |
StringBuilder sqlCount = new StringBuilder(); | |
sql.append("SELECT phone_number FROM sms_campaign_recepient WHERE sms_campaign_id = :smsCampaignId "); | |
// Check if isPhoneVN is specified in the request | |
if (request.getIsPhoneVN() != null) { | |
sql.append("AND is_phone_vn = :isPhoneVN "); | |
} | |
// Create a native SQL query | |
Query query = entityManager.createNativeQuery(sql.toString()); | |
sqlCount.append("SELECT count(1) from ( " + sql + " ) as t"); | |
Query queryCount = entityManager.createNativeQuery(sqlCount.toString()); | |
query.setFirstResult(pageNumber * pageSize); | |
query.setMaxResults(pageSize); | |
// Set parameters for the query | |
query.setParameter("smsCampaignId", request.getSmsCampainId()); | |
queryCount.setParameter("smsCampaignId", request.getSmsCampainId()); | |
// Set isPhoneVN parameter if it is specified in the request | |
if (request.getIsPhoneVN() != null) { | |
query.setParameter("isPhoneVN", request.getIsPhoneVN()); | |
queryCount.setParameter("isPhoneVN", request.getIsPhoneVN()); | |
} | |
// Execute the query and retrieve the results as a list of String (phone numbers) | |
List<String> result = query.getResultList(); | |
// Create a native SQL query count | |
BigInteger total = (BigInteger) queryCount.getSingleResult(); | |
return new PageImpl<>(result, pageable, total.longValue()); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment