public ArrayList<Tilaus> haePaistettavatTilaukset() throws DAOPoikkeus, SQLException {
		
		ArrayList<Tilaus> tilaukset = new ArrayList<Tilaus>();
		Tilaus tilaus = new Tilaus();
		ResultSet tulokset, fantasiaTulokset;
		
		// Avataan ensin yhteys
		Connection yhteys = avaaYhteys();
		
		// Alustetaan kyselyt.
		// Tilausriveihin valitaan vain tuoteryhmän 1 (pizzat) tuotteet.
		String tilausSQL = "SELECT tilausID, pvm FROM Tilaus WHERE paistettu = '0' ORDER BY pvm ASC";
		String tilausrivitSQL = "SELECT TilauksenTuote.tilauksenTuoteID, TilauksenTuote.tuoteID, Koko.nimi, TilauksenTuote.kplmaara, TilauksenTuote.oregano, TilauksenTuote.valkosipuli, TilauksenTuote.laktoositon, TilauksenTuote.gluteeniton FROM TilauksenTuote INNER JOIN Koko ON TilauksenTuote.kokoID = Koko.kokoID WHERE tilausID = ? AND TilauksenTuote.tuoteID in (SELECT Tuote.tuoteID FROM Tuote WHERE Tuote.tuoteryhmaID = '1')";
		String fantasiaSQL = "SELECT tayte1, tayte2, tayte3, tayte4 FROM TilauksenFantasia WHERE tilauksenTuoteID = ?";
		
		PreparedStatement tilauksetLause = yhteys.prepareStatement(tilausSQL);
		PreparedStatement tilausrivitLause = yhteys.prepareStatement(tilausrivitSQL);
		PreparedStatement fantasiaLause = yhteys.prepareStatement(fantasiaSQL);
		
		try {
			
			// Haetaan kaikki paistamattomat tilaukset
			tulokset = tilauksetLause.executeQuery();
			
			while (tulokset.next()) {
				int tilausID = tulokset.getInt("tilausID");
								
				Date pvm = tulokset.getTimestamp("pvm");
				
				
				// Tehdään näistä tilausolion ranka ja lisätään se listaan.
				tilaus = new Tilaus(tilausID, pvm);
				tilaukset.add(tilaus);			
			}
			
			// Tarvitaan tilauksiin vielä tilausrivit.
			for (int i = 0; i < tilaukset.size(); i++) {
				
				// Esitellään tilausrivit-lista.
				ArrayList<Tilausrivi> tilausrivit = new ArrayList<Tilausrivi>();
				
				// Asetetaan tilauksen numero tilausrivilauseeseen.
				tilausrivitLause.setInt(1, tilaukset.get(i).getTilausId());
				tulokset = tilausrivitLause.executeQuery();
				
				while (tulokset.next()) {
					int tilauksenTuoteID = tulokset.getInt("tilauksenTuoteID");
					int tuoteID = tulokset.getInt("tuoteID");
					String kokoStr = tulokset.getString("nimi");
					int kplmaara = tulokset.getInt("kplmaara");
					boolean oregano = tulokset.getBoolean("oregano");
					boolean valkosipuli = tulokset.getBoolean("valkosipuli");
					boolean laktoositon = tulokset.getBoolean("laktoositon");
					boolean gluteeniton = tulokset.getBoolean("gluteeniton");
					
					// Haetaan tuotteen tiedot ID:llä kannasta samalla
					TuoteDAO tDao = new TuoteDAO();
					Tuote tuote = tDao.haeTuote(tuoteID);
					Pizza pizza = tDao.haePizza(tuoteID); // täytteiden vuoksi
					
					// Jos haettu tuote on Fantasiapizza, haetaan tietokannasta
					// vielä sinne tallennetut fantasian täytteet.
					if (tuote.getNimi().equals("Fantasia")) {
						fantasiaLause.setInt(1, tilauksenTuoteID);
						fantasiaTulokset = fantasiaLause.executeQuery();
						
						while (fantasiaTulokset.next()) {
							int tayte1 = fantasiaTulokset.getInt("tayte1");
							int tayte2 = fantasiaTulokset.getInt("tayte2");
							int tayte3 = fantasiaTulokset.getInt("tayte3");
							int tayte4 = fantasiaTulokset.getInt("tayte4");
							
							TayteDAO tayteDao = new TayteDAO();
							ArrayList<Tayte> fantasiataytteet = tayteDao.haeFantasiaTaytteet(tayte1, tayte2, tayte3, tayte4);
							pizza.setTaytteet(fantasiataytteet);
						}
					}
					
					// Lisätään tilausrivi listaan.
					Tilausrivi tilausrivi = new Tilausrivi(tilauksenTuoteID, tuote, pizza, kokoStr, kplmaara, oregano, valkosipuli, laktoositon, gluteeniton);
					tilausrivit.add(tilausrivi);
						
				}

				// Lisätään tilauksen rivit tilaukseen.
				tilaukset.get(i).setTilausrivit(tilausrivit);
			}
	
		} catch(DAOPoikkeus e) {
			throw new DAOPoikkeus("Tilaustietojen haku aiheutti virheen!", e);
		} finally {
			// Lopuksi aina suljetaan yhteys!
			suljeYhteys(yhteys);
		}
		
		return tilaukset;
	}