private List<Object[]> getOverviewRows(OverviewRequest overviewRequest) {
		String sql = "SELECT vt.id, vt.vesselClass, vt.aisVesselPosition.cog, vt.aisVesselPosition.sog, vt.aisVesselPosition.lat, vt.aisVesselPosition.lon, vt.aisVesselStatic.shipType, casp.navStatus "
				+ "FROM AisVesselTarget vt "
				+ "LEFT OUTER JOIN vt.aisVesselPosition.aisClassAPosition AS casp "
				+ "WHERE vt.aisVesselPosition.lat > :swLat "
				+ "AND vt.aisVesselPosition.lon > :swLon "
				+ "AND vt.aisVesselPosition.lat < :neLat "
				+ "AND vt.aisVesselPosition.lon < :neLon "
				+ "AND vt.validTo >= :now "
				+ "AND vt.aisVesselPosition.lat IS NOT NULL AND vt.aisVesselPosition.lon IS NOT NULL ";

		for (String filterKey : overviewRequest.getFilterMap().keySet()) {
			List<String> values = overviewRequest.getFilterMap().get(filterKey);
			String[] ors = new String[values.size()];
			for (int i = 0; i < ors.length; i++) {
				ors[i] = "vt." + filterKey + " = :" + filterKey + i;
			}
			sql += "\nAND (";
			sql += StringUtils.join(ors, " OR ");
			sql += ")";
		}
		
		for (String filterKey : overviewRequest.getExcludeMap().keySet()) {
			List<String> values = overviewRequest.getExcludeMap().get(filterKey);
			String[] ands = new String[values.size()];
			for (int i = 0; i < ands.length; i++) {
				ands[i] = "vt." + filterKey + " != :" + filterKey + i;
			}
			sql += "\nAND (";
			sql += StringUtils.join(ands, " AND ");
			sql += ")";
		}
		
		Query query = entityManager.createQuery(sql);
		query.setParameter("swLat", overviewRequest.getSwLat());
		query.setParameter("swLon", overviewRequest.getSwLon());
		query.setParameter("neLat", overviewRequest.getNeLat());
		query.setParameter("neLon", overviewRequest.getNeLon());
		query.setParameter("now", new Date());
		
		for (String filterKey : overviewRequest.getFilterMap().keySet()) {
			List<String> values = overviewRequest.getFilterMap().get(filterKey);
			for (int i=0; i < values.size(); i++) {
				query.setParameter(filterKey + i, values.get(i));
			}
		}
		
		for (String filterKey : overviewRequest.getExcludeMap().keySet()) {
			List<String> values = overviewRequest.getExcludeMap().get(filterKey);
			for (int i=0; i < values.size(); i++) {
				query.setParameter(filterKey + i, values.get(i));
			}
		}
		
		@SuppressWarnings("unchecked")
		List<Object[]> lines = query.getResultList();
		
		return lines;
	}