{
"message": "The operation was successful.",
"code": 200,
"fileDetailResponseDtos": [
{
"phoneNumber": "550000000",
"textMessage": "Message1",
"createDateTime": "2021-10-20T15:45:27.277",
"sender": "Anar",
"status": 0,
"originatry": 0
},
{
"phoneNumber": "550000000",
"textMessage": "Message2",
"createDateTime": "2021-10-20T15:45:27.277",
"sender": "Anar",
"status": 0,
"originatry": 0
},
{
"phoneNumber": "550000000",
"textMessage": "Message3",
"createDateTime": "2021-10-20T15:45:27.277",
"sender": "Anar",
"status": 0,
"originatry": 0
}
]
}
However, when I perform an operation based on a phone number that is not in the database, it still returns the second part instead of this message.
{
"message": "The operation was successful",
"code": 200,
"fileDetailResponseDtos": []
}
But I want it to look like this in the output.
{
"message": "Unfortunately, no information was found for this number.",
"code": 400,
}
Yes I know it's not possible to return a list null. Here is the method I wrote in the dao layer.
How can I output the message I want when I perform an invalid operation?
@Override
public List<FileDetail> getByPhoneNumberCBVersion(String phoneNumber) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<FileDetail> generateQueryWithMethods = criteriaBuilder.createQuery(FileDetail.class);
Root<FileDetail> starsFrom = generateQueryWithMethods.from(FileDetail.class);
generateQueryWithMethods.select(starsFrom);
generateQueryWithMethods.where(criteriaBuilder.equal(starsFrom.get("phoneNumber"), phoneNumber));
TypedQuery<FileDetail> query = entityManager.createQuery(generateQueryWithMethods);
List<FileDetail> resultList = query.getResultList();
return resultList;
}
What I have tried:
I tried to do something using lambda expressions a few times, but I couldn't do anything.