public List<RanglistenEintrag> getTeamRangliste() {
		List<Team> alleTeams = eloPersistence.createQuery("select distinct t from Team t join fetch t.punktzahlHistorie", Team.class)
				.getResultList();
		Collections.sort(alleTeams, new Comparator<Team>() {
			public int compare(Team o1, Team o2) {
				return (o1.getPunktzahl().getPunktzahl() - o2.getPunktzahl().getPunktzahl()) * -1;
			}
		});

		/* Nur aktive Spieler */
		for (Iterator<Team> i = alleTeams.iterator(); i.hasNext();) {
			Team team = i.next();
			if (!team.getSpieler1().isVisible() || !team.getSpieler2().isVisible()) {
				i.remove();
			}
		}

		List<RanglistenEintrag> rangliste = new ArrayList<RanglistenEintrag>();
		int rang = 1;
		for (Team team : alleTeams) {
			int anzahlSpiele = team.getPunktzahlHistorie().size() - 1;
			int anzahlSiege = 0;

			for (EloPunktzahl punktzahl : team.getPunktzahlHistorie()) {
				if (punktzahl.getZuwachs() > 0) {
					anzahlSiege++;
				}
			}

			RanglistenEintrag eintrag = new RanglistenEintrag(team.getId(), rang, team.getSpieler1().getName() + "/"
					+ team.getSpieler2().getName(), team.getPunktzahl().getPunktzahl(), anzahlSpiele, anzahlSiege);
			rangliste.add(eintrag);
			rang++;
		}
		return rangliste;
	}