@Override
    public List<Homonym> getAllPTWords() {
        List<Homonym> result = null;

        String sql = "SELECT portugal, popis, popis2, slovak1, skratka1, skratka1b, slovak2, skratka2, skratka2b, " +
                "slovak3, skratka3, skratka3b, slovak4, skratka4, skratka4b, slovak5, skratka5, skratka5b, " +
                "slovak6, skratka6, skratka6b, slovak7, skratka7, skratka7b, slovak8, skratka8, skratka8b, " +
                "slovak9, skratka9, skratka9b, slovak10, skratka10, skratka10b, tvar " +
                "FROM ";

        RowMapper<Homonym> rowMapper = new RowMapper<Homonym>() {
            public Homonym mapRow(ResultSet rs, int rowNum) throws SQLException {
                Homonym tran = new Homonym();
                //tran.setId(rs.getInt("id"));
                tran.setLang(Lang.PT);
                tran.setOrig(rs.getString("portugal").trim());
                Word word = new Word();

                String wc = rs.getString("popis");
                if (!isEmpty(wc)) word.setWordClass(WordClass.valueOf(Integer.valueOf(wc.trim())));
                String ng = rs.getString("popis2");
                if (!isEmpty(ng)) word.setNumberGender(NumberGender.valueOf(Integer.valueOf(ng.trim())));
                String va = rs.getString("tvar");
                if (!isEmpty(va)) VariantHelper.processVariants(tran, word, va);

                List<Meaning> meanings = new ArrayList<>();
                Meaning s;
                String fi, st, sy;
                for (int i = 1; i <= 10; i++) {
                    s = new Meaning();
                    fi = rs.getString("skratka" + i);
                    if (!isEmpty(fi)) s.setFieldType(FieldType.valueOf(Integer.valueOf(fi.trim())));
                    st = rs.getString("skratka" + i + "b");
                    if (!isEmpty(st)) s.setStyle(Style.valueOf(Integer.valueOf(st.trim())));
                    sy = rs.getString("slovak" + i);
                    if (!isEmpty(sy)) {
                        s.setSynonyms(sy.trim());
                        meanings.add(s);
                    }
                }
                word.setMeanings(meanings);
                tran.addWord(word);
                return tran;
            }
        };
        result = jdbcTemplate.query(sql + "prtbl where chliev = 0", rowMapper);
        result.addAll(jdbcTemplate.query(sql + "prvvzn", rowMapper));
        result.addAll(jdbcTemplate.query(sql + "drhvzn", rowMapper));

        return result;
    }