\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] ListeventList = // 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}