public static HashSet<ExerciseQuestionRelation> getExerciseQuestionRelationRowsWithQuestionNo(
            String questionNo) {
        Connection conn = ConnectionManager.getInstance().getConnection();
        
        String sql = "{call selectExerciseQuestionRelationRowsWithQuestionNo(?)}";
        ResultSet rs = null;

        try (PreparedStatement stmt = conn.prepareStatement(sql);) {
            stmt.setString(1, questionNo);
            rs = stmt.executeQuery();

            HashSet<ExerciseQuestionRelation> hashSet = new HashSet<ExerciseQuestionRelation>();

            while (rs.next()) {
                ExerciseQuestionRelation exerciseQuestionRelationEntity = new ExerciseQuestionRelation();
                exerciseQuestionRelationEntity.setExerciseNo(rs
                        .getString("exerciseNo"));
                exerciseQuestionRelationEntity.setQuestionNo(rs
                        .getString("questionNo"));

                hashSet.add(exerciseQuestionRelationEntity);
            }

            return hashSet;

        } catch (SQLTransientConnectionException SQLtce) {
            return getExerciseQuestionRelationRowsWithQuestionNo(questionNo);
        } catch (SQLTransientException SQLte) {
            return getExerciseQuestionRelationRowsWithQuestionNo(questionNo);
        } catch (SQLException e) {
            System.err.println(e);
            return null;
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                conn.close();
            } catch (SQLException e) {
                System.err.println(e);
            }
        }
    }