Здравствуйте. Я написал запрос на соединение, но у меня нет реляционных аннотаций на моих сущностях. Мне нравится менять мой запрос для лучшей производительности. Есть ли другой способ сделать это
@Override
public List<Object[]> search(String code, String name, String username, String shopName, String startDate, String endDate) {
Query query = null;
StringJoiner stringJoiner = new StringJoiner(" AND ");
stringJoiner.add("SELECT sthLogin.sthId, sth.sthMobileNumber, sth.createdDate, sth.expiryDate, sth.brandingName, sth.shopName" +
" FROM tbl_sth_login_credentials sth INNER JOIN tbl_maintain_sth_profile sth ON sth.Id = sth.sthPrimaryId WHERE sth.deletionStatus = 'N' ");
if(StringUtils.isNotEmpty(sthCode))
stringJoiner.add("stlogin.code = '" + sthCode + "'");
if(StringUtils.isNotEmpty(sthName))
stringJoiner.add("sth.brandingName = '" + sthName + "'");
if(StringUtils.isNotEmpty(username))
stringJoiner.add("sthLogin.sthMobileNumber = '" + username + "'");
if(StringUtils.isNotEmpty(shopName))
stringJoiner.add("sth.shopName = '" + shopName + "'");
if(StringUtils.isNotEmpty(shopName) && StringUtils.isNotEmpty(endDate))
stringJoiner.add("sth.createdDate BETWEEN '" + startDate + "' AND '" + endDate + "' ");
query = entityManager.createNativeQuery(stringJoiner.toString());
return query.getResultList();