public ArrayList<Pizza> haeKaikkiPizzat() throws DAOPoikkeus {
		
		ArrayList<Pizza> pizzat = new ArrayList<Pizza>();
		
		// avataan yhteys
		Connection yhteys = avaaYhteys();
		
		try {
			
			// Haetaan tietokannasta Pizzat ja täytteet
			String pizzaSQL = "select Tuote.nimi, Tuote.numero, Tuote.hinta, Tuote.tuoteID, Tuote.aktiivinen from Tuote WHERE Tuote.tuoteryhmaID ='1' order by numero asc";
			String taytteetSQL = "select Tayte.nimi, Tayte.TayteID from Tayte INNER JOIN TuotteenTayte ON TuotteenTayte.tayteID = Tayte.tayteID INNER JOIN Tuote ON Tuote.tuoteID = TuotteenTayte.tuoteID where Tuote.tuoteID = ?;";
			
			PreparedStatement lause = yhteys.prepareStatement(taytteetSQL);
			Statement haku = yhteys.createStatement();
			
			ResultSet pizzaResult = haku.executeQuery(pizzaSQL);
			
			
			while(pizzaResult.next()) {
				int numero = pizzaResult.getInt("numero");
				String nimi = pizzaResult.getString("nimi");
				double hinta = pizzaResult.getDouble("hinta");
				int id = pizzaResult.getInt("tuoteID");
				boolean aktiivinen = pizzaResult.getBoolean("aktiivinen");
				
				// lisätään Pizza ArrayListiin
				Pizza pizza = new Pizza(numero, nimi, hinta, id, aktiivinen);
				pizzat.add(pizza);
			}
			
			
			for (int i = 0; i < pizzat.size(); i++) {
				ArrayList<Tayte> lista = new ArrayList<Tayte>();
				lause.setInt(1, pizzat.get(i).getId());
				ResultSet tayteResult = lause.executeQuery();
				
				while(tayteResult.next()) {
					String nimi = tayteResult.getString("nimi");
					int id = tayteResult.getInt("TayteID");
					// lisätään Pizza väliaikaiseen listaan
				Tayte tayte = new Tayte(nimi,id);
				lista.add(tayte);
					
				}
				pizzat.get(i).setTaytteet(lista);
				System.out.println(pizzat.get(i));
			}
			
			
			
		} catch(Exception e) {
			// Tapahtui jokin virhe?
			throw new DAOPoikkeus("Tietokantahaku aiheutti virheen.", e);
		} finally {
			// Lopulta aina suljetaan yhteys!
			suljeYhteys(yhteys);
		}
		
		return pizzat;
	}