public List<MappedDrinkType> findAllDrinkTypes() {
        List<MappedDrinkType> drinkTypes = new ArrayList<MappedDrinkType>();
        
        final String query = Conca.t(
            "select ",
            "   dt.id                           as typeId, ",
            "   dt.name                         as name, ",
            "   dt.descript                     as description, ",
            "   dt.cost_per_ml                  as costPerML, ",
            "   u.id                            as userId, ",
            "   u.username                      as username, ",
            "   u.active                        as active ",
            "from ",
            "   drink_type dt join user u on (dt.created_by_userFk = u.id) ",
            "order by name desc"
        );
        
        try {
            final ResultSet rs = execute(query, Collections.emptyList(), new ArrayList<Class<?>>());
            
            while (rs.next()) {
                final MappedDrinkType eaType = new MappedDrinkType();

                eaType.setTypeId(rs.getInt("typeId"));
                eaType.setName(rs.getString("name"));
                eaType.setDescription(rs.getString("description"));
                eaType.setCostPerML(rs.getDouble("costPerML"));
                eaType.getCreatedBy().setId(rs.getInt("userId"));
                eaType.getCreatedBy().setUsername(rs.getString("username"));
                eaType.getCreatedBy().setActive(rs.getInt("active") == 1);

                drinkTypes.add(eaType);
            }
            
        } catch (Exception e) {
            log4jLogger.error("error occurred while attempting to find all drink types", e);
        }
        
        return drinkTypes;
    }