以下のロジックについては、get例外(java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です。Hibernate createSQLQuery例外を与える - 文字列インデックスが範囲外です:0
私は性別が多くの場所でnullであることを確認しています。クエリ中にnullをチェックする他の方法はありますか?
beginTransaction();
try {
SQLQuery q = getSession().createSQLQuery("SELECT DISTINCT " +
"ind.ind_id AS id, " +
"ind.IND_FNAME AS firstName, " +
"ind.IND_LNAME AS lastName, " +
"perInfo.IND_DOB AS dob, " +
"trc.trCTM_Grade_Mapping AS grade, " +
"TIMESTAMPDIFF(YEAR, perInfo.IND_DOB, NOW()) AS years, " +
"TIMESTAMPDIFF(MONTH, perInfo.IND_DOB, NOW()) AS months, " +
"perInfo.IND_SEX AS sex " +
"FROM INDIVIDUALS ind " +
"INNER JOIN USER_MEMBERSHIPS usm on usm.USR_ID = ind.IND_ID " +
"INNER JOIN PERSONAL_INFO perInfo on perInfo.IND_ID = ind.IND_ID " +
"INNER JOIN TRACKER_CUSTOM_DASHBOARD trcd on perInfo.IND_ID = trcd.USR_ID " +
"INNER JOIN TRACKER_CUSTOM trc on trcd.trCTM_MainID = trc.trCTM_MainID " +
"WHERE usm.GRP_ID = :GRP_ID ;");
q.setInteger ("GRP_ID", groupId);
q.setResultTransformer (Transformers.aliasToBean (ImmunizationsComplianceDTO.class));
result = q.list();
}catch(RuntimeException e) {
rollbackTransaction();
handleHibernateException(e);
throw e;
} finally {
closeTransaction();
}