<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to objects_from_queries</title><link>https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/</link><description>Recent changes to objects_from_queries</description><atom:link href="https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 21 May 2015 21:52:27 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/feed" rel="self" type="application/rss+xml"/><item><title>objects_from_queries modified by Luis M. Villa</title><link>https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -8,22 +8,23 @@
 ~~~~
 public class User {

-   private Integer id;
-   private String name;
-   private String surname;
-   private Integer age;
-   private Boolean active;
-        private transient Integer unimportantField;
+    private Integer id;
+    private String name;
+    private String surname;
+    private Integer age;
+    private Boolean active;
+    private transient Integer unimportantField;

-        ... Getters and setters
+    .... Getters and setters ...
+
 }

 // We'll obtain now one (or zero) users
-final Select&amp;lt;User&amp;gt; queryFindUserAsObject = new Select&amp;lt;User&amp;gt;("Find user", 
-    "select * from user where userId=?", new Object[] { 1 }, 
-    Mappings.toObject(User.class));
+final Select&amp;lt;User&amp;gt; queryFindUserAsObject = new Select&amp;lt;User&amp;gt;(
+    "Find user", "select * from user where userId=?",
+    new Object[] { 1 }, Mappings.toObject(User.class));
 final User user = new IssuesDb().sql().run(queryFindUserAsObject);
-Assert.assertEquals(Integer.valueOf(1), user.getUserId());
+Assert.assertEquals(Integer.valueOf(1), user.getId());
 ~~~~

 One thing to note here is that we have a **transient field** (unimportantField). This field will not be obtained from the database. This is the way we have to **ignore fields in the mapping**.
@@ -32,20 +33,24 @@

 ~~~~
 // We'll use this query as template (so we illustrate also how to clone a query)
-final Select&amp;lt;DataList&amp;gt; queryAllUsers = new Select&amp;lt;DataList&amp;gt;("Select all users", 
-    "select * from user", Mappings.toDataList());
+final Select&amp;lt;DataList&amp;gt; queryAllUsers = new Select&amp;lt;DataList&amp;gt;(
+        "Select all users", "select * from user",
+        Mappings.toDataList());

 // Obtaining a list of users...
-final Select&amp;lt;List&amp;lt;User&amp;gt;&amp;gt; queryAllUsersAsObjects = new Select&amp;lt;List&amp;lt;User&amp;gt;&amp;gt;(queryAllUsers,
-    Mappings.toObjectList(User.class)); // We clone queryAllUsers, but change the mapping
-final List&amp;lt;User&amp;gt; users = new IssuesDb().sql().run(queryAllUsersAsObjects);
+final Select&amp;lt;List&amp;lt;User&amp;gt;&amp;gt; queryAllUsersAsObjects = new Select&amp;lt;List&amp;lt;User&amp;gt;&amp;gt;(
+        queryAllUsers, Mappings.toObjectList(User.class)); // We
+// clone queryAllUsers, but change the mapping
+final List&amp;lt;User&amp;gt; users = new IssuesDb().sql().run(
+        queryAllUsersAsObjects);
 final User user = users.get(0); // User at index 0

 // Obtaining a map of users using userId as key...
 final Select&amp;lt;ObjectMap&amp;lt;User&amp;gt;&amp;gt; queryAllUsersAsMapOfObjects = new Select&amp;lt;ObjectMap&amp;lt;User&amp;gt;&amp;gt;(
-    queryAllUsers, Mappings.toObjectMap(User.class, "userId"));
-final ObjectMap&amp;lt;User&amp;gt; users = new IssuesDb().sql().run(Queries.queryAllUsersAsMapOfObjects);
-final User user = users.get(1); // User with userId = 1
+        queryAllUsers, Mappings.toObjectMap(User.class, "userId"));
+final ObjectMap&amp;lt;User&amp;gt; usersMap = new IssuesDb().sql().run(
+        queryAllUsersAsMapOfObjects);
+final User userWithId1 = users.get(1); // User with userId = 1
 ~~~~

 And that's it! [Now for some updates...](updates_to_database)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Luis M. Villa</dc:creator><pubDate>Thu, 21 May 2015 21:52:27 -0000</pubDate><guid>https://sourceforge.netee32464df47230b50a9ca2f5ecc23202314f6459</guid></item><item><title>objects_from_queries modified by Luis M. Villa</title><link>https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,5 +1,7 @@
 Obtaining objects from queries
 ---
+
+[(Return to examples index)](Examples)

 Here is where the principle of **Convention over Configuration** enters. As long as our objects have attributes (with public getters and setters) with the same name as our tables, we'll be able to do this:

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Luis M. Villa</dc:creator><pubDate>Thu, 19 Feb 2015 13:29:58 -0000</pubDate><guid>https://sourceforge.net0eea580da66055b3a1c7a9bda6185d9dd8b728ba</guid></item><item><title>objects_from_queries modified by Luis M. Villa</title><link>https://sourceforge.net/p/milk-framework/wiki/objects_from_queries/</link><description>&lt;div class="markdown_content"&gt;&lt;h2 id="obtaining-objects-from-queries"&gt;Obtaining objects from queries&lt;/h2&gt;
&lt;p&gt;Here is where the principle of &lt;strong&gt;Convention over Configuration&lt;/strong&gt; enters. As long as our objects have attributes (with public getters and setters) with the same name as our tables, we'll be able to do this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;class&lt;/span&gt; &lt;span class="nb"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;Integer&lt;/span&gt; &lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;String&lt;/span&gt; &lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;String&lt;/span&gt; &lt;span class="nx"&gt;surname&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;Integer&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;Boolean&lt;/span&gt; &lt;span class="nx"&gt;active&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;transient&lt;/span&gt; &lt;span class="kt"&gt;Integer&lt;/span&gt; &lt;span class="nx"&gt;unimportantField&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="nx"&gt;...&lt;/span&gt; &lt;span class="nx"&gt;Getters&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;setters&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// We'll obtain now one (or zero) users&lt;/span&gt;
&lt;span class="nx"&gt;final&lt;/span&gt; &lt;span class="k"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;queryFindUserAsObject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="k"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Find user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s2"&gt;"select * from user where userId=?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; { 1 }, 
    Mappings.toObject(User.class));
final User user = new IssuesDb().sql().run(queryFindUserAsObject);
Assert.assertEquals(Integer.valueOf(1), user.getUserId());
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;One thing to note here is that we have a &lt;strong&gt;transient field&lt;/strong&gt; (unimportantField). This field will not be obtained from the database. This is the way we have to &lt;strong&gt;ignore fields in the mapping&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Simple, isn't it? Now we retrieve rows and maps of users:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c1"&gt;// We'll use this query as template (so we illustrate also how to clone a query)&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DataList&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;queryAllUsers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DataList&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Select all users"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s"&gt;"select * from user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Mappings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toDataList&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// Obtaining a list of users...&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;queryAllUsersAsObjects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;queryAllUsers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;Mappings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toObjectList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// We clone queryAllUsers, but change the mapping&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;IssuesDb&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;queryAllUsersAsObjects&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;User&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// User at index 0&lt;/span&gt;

&lt;span class="c1"&gt;// Obtaining a map of users using userId as key...&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;ObjectMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;queryAllUsersAsMapOfObjects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;ObjectMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;queryAllUsers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Mappings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toObjectMap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"userId"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;ObjectMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;IssuesDb&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Queries&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;queryAllUsersAsMapOfObjects&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;User&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// User with userId = 1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And that's it! &lt;a class="" href="../updates_to_database"&gt;Now for some updates...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Luis M. Villa</dc:creator><pubDate>Thu, 19 Feb 2015 12:39:22 -0000</pubDate><guid>https://sourceforge.netcd0a54b750132b624e6793b471344b3beee0f199</guid></item></channel></rss>