\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}