{"id":133,"date":"2019-01-15T11:21:10","date_gmt":"2019-01-15T10:21:10","guid":{"rendered":"http:\/\/gundermann2.bplaced.net\/htdocs\/wordpress\/?p=133"},"modified":"2019-01-15T11:21:10","modified_gmt":"2019-01-15T10:21:10","slug":"native-queries-mit-speziellen-rueckgabewert","status":"publish","type":"post","link":"https:\/\/blog.nigdev.de\/?p=133","title":{"rendered":"Native Queries mit speziellen R\u00fcckgabewert"},"content":{"rendered":"<p>Mit der Version 1.5 wird das Handling nativer Queries innerhalb des Frameworks <a href=\"http:\/\/gundermann2.bplaced.net\/htdocs\/wordpress\/?p=42\">APersist<\/a> vereinfacht.<\/p>\n<p><!--more--><\/p>\n<p>Native Queries lie\u00dfen sich bisher \u00fcber die Methode <em>execQuery <\/em>des Interface <em>Database<\/em> ausf\u00fchren. Als R\u00fcckgabewert bekam man ein Objekt vom Typ <em>Cursor<\/em> (<em>android.database.Cursor<\/em>) wodurch man gezwungen war, die darin gekapselte Daten manuell zu extrahieren.<\/p>\n<p>Mit der neuen Version steht die Methode <em>createQuery<\/em> im Interface <em>Database<\/em> zur Verf\u00fcgung.<\/p>\n<p>Diese Methode liefert als R\u00fcckgabewert ein Objekt vom Typ <em>NativeQuery (<span class=\"pl-smi\">com.ng.apersist.query.NativeQuery<\/span>)<\/em>. F\u00fcr die R\u00fcckagbe der abgefragten Daten ist nun ein weiterer Aufruf notwendig. Hierbei kann der Entwickler aber entscheiden, ob anhand der abgefragten Daten ein Objekt der zur Query passenden Persistenzklasse (siehe <a href=\"http:\/\/gundermann2.bplaced.net\/htdocs\/wordpress\/?p=69\"><em>@PersistenceClass<\/em><\/a>) erzeugt werden soll.<\/p>\n<p>Daher gibt es in der Klasse <em>NativeQuery<\/em> zwei Methode f\u00fcr die Ausgabe der Resultate:<\/p>\n<pre>public Collection&lt;Object[]&gt; getResult();\r\n\r\npublic &lt;T&gt; Collection&lt;T&gt; getResult(Class&lt;T&gt; resultType);<\/pre>\n<p>Die zweite Methode sorgt daf\u00fcr. dass beim Aufruf ein Objekt des \u00fcbergebenen Typs erzeugt wird.<\/p>\n<p>Wichtig ist jedoch, dass die Query, die daf\u00fcr notwendigen Informationen in der SELECT-Anweisung liefert und dass die Klasse <em>T<\/em> mit <em>@PersistenceClass<\/em> annotiert ist (siehe <a href=\"http:\/\/gundermann2.bplaced.net\/htdocs\/wordpress\/?p=69\">Link<\/a>).<\/p>\n<hr \/>\n<p><strong>Links:<\/strong><\/p>\n<p><a href=\"https:\/\/drive.google.com\/open?id=18xjKV47nfts8c1trDDt6538iK5NxullE\">Download &#8211; APersist 1.5<\/a><br \/>\n<a href=\"https:\/\/github.com\/gundermann\/APersist\">Git<\/a><\/p>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?hashtags=APersist%20%23AndroidDev&#038;via=NielsGundermann\" class=\"twitter-share-button\">Twittern<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Mit der Version 1.5 wird das Handling nativer Queries innerhalb des Frameworks APersist vereinfacht.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/posts\/133"}],"collection":[{"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=133"}],"version-history":[{"count":5,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/posts\/133\/revisions"}],"predecessor-version":[{"id":140,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=\/wp\/v2\/posts\/133\/revisions\/140"}],"wp:attachment":[{"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nigdev.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}