38/66
\begin{frame}[fragile]
  \frametitle{Object Relational Mapping: Dangers}

  \begin{exampleblock}{}
    \begin{tcenter}
    \scalebox{.8}{
    \begin{tikzpicture}
       \exampleuml
    \end{tikzpicture}
    }    
    \end{tcenter}
    \smallskip
    
    We want all events in Amsterdam:
    \begin{indentation}{.5cm}{0cm}
    \begin{lstlisting}[language=Java]
List eventList = // get all events
for (Event event : eventList) {
  Address address = event.getVenue().getAddress();
  if ("Amsterdam".equals(address.getCity())) {
    System.out.println(event.getName());
  }
}
    \end{lstlisting}
    \end{indentation}
    \vspace{-1ex}
  \end{exampleblock}
  \pause
  
  \begin{alertblock}{Inefficient!}
    Instead of loading just the events with city "Amsterdam":
    \begin{itemize}
      \item loads all events, and then iterates through all of them
    \pause
      \item also each call to getVenue() will result in an SQL query
    \end{itemize}
  \end{alertblock}
\end{frame}