{"id":66,"date":"2017-03-12T10:30:12","date_gmt":"2017-03-12T09:30:12","guid":{"rendered":"http:\/\/uc-mobileapps.com\/de\/?page_id=66"},"modified":"2022-04-08T08:10:36","modified_gmt":"2022-04-08T06:10:36","slug":"one-to-many-relation","status":"publish","type":"page","link":"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/","title":{"rendered":"Beispiel 1 &#8211; One-To-Many Relation"},"content":{"rendered":"<p>Der Anwendungsfall &#8220;Kunde hat mehrere Bestellungen&#8221; kann durch zwei Gesch\u00e4ftsobjekte Customer und Order modelliert werden. Durch Nutzung der Source-Level Annotationen wird die Beziehung zwischen den Instanzen, wie bei JPA \u00fcblich deklarativ beschrieben.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">@SeifeClass(\r\n        generatorOptions = {\r\n                GeneratorOption.BOCLASS, GeneratorOption.SCHEMA_PEER,\r\n                GeneratorOption.DB_HELPER+\"=com.uc_mobileapps.seifesample01.db.CustomerDB\",\r\n                GeneratorOption.DATA_PROVIDER+\"=com.uc_mobileapps.seifesample01.provider.CustomerProvider\"\r\n        },\r\n        description = \"A customer object, since this is a source annotation it won't occur in \" +\r\n        \"the final class and has no runtime dependencies\")\r\npublic class Customer {\r\n\r\n    @SeifeField(isPrimaryKey = true,\r\n        description=\"a simple primary key field\")\r\n    private Long id;\r\n\r\n    @SeifeField\r\n    private String name;\r\n\r\n}\r\n<\/pre>\n<p>Mit <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">@SeifeClass<\/code>und <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">@SeifeField<\/code> wird festgelegt, dass f\u00fcr die Klasse zus\u00e4tzlicher Programmcode generiert werden soll und welche Felder vom Code-Generator ber\u00fccksichtigt werden. In den generatorOptions w\u00e4hlt man die ben\u00f6tigten Android-Code Typen.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">@SeifeClass(\r\n        generatorOptions = {\r\n        GeneratorOption.BOCLASS, GeneratorOption.SCHEMA_PEER},\r\n        description=\"Defines a simple many to one relation\")\r\npublic class Order {\r\n    @SeifeField(isPrimaryKey = true)\r\n    private Long id;\r\n\r\n    @SeifeField(mandatory = true, sqlOptions = @SqlFieldOptions(sqlIndex = \"idxOrderDate\"))\r\n    private Date orderDate;\r\n\r\n  \/**\r\n   * The foreign key field 'fkField' refers to {@link #customer},\r\n   * it will be set via {@link #setCustomer(Customer)}.\r\n   *\/\r\n    @SeifeField(foreignKey = @ForeignkeyDef(fkField = \"customer\", refKeyField=\"id\", refClass=Customer.class))\r\n    private Long customerId;\r\n\r\n  private Customer customer;\r\n\r\n  public Customer getCustomer() {\r\n    return customer;\r\n  }\r\n}<\/pre>\n<p>Ein Fremdschl\u00fcssel l\u00e4sst sich direkt am Feld definieren, das Metamodell wird von dem Toolset um den ben\u00f6tigten Android Programmcode erg\u00e4nzt und erspart die fehleranf\u00e4llige und zeitaufw\u00e4ndige Entwicklung der ben\u00f6tigten Schnittstellen. S\u00e4mtliche Tabellen Eigenschaften sind als statische Bezeichner verf\u00fcgbar und erm\u00f6glichen ein besseres Refactoring der Quelltexte als bei hart kodierter Schreibweise.<\/p>\n<p>Es folgen die aus dem obigen Code generierten SQL Schema Peer Klassen mit \u00fcblicher Logik zum Lesen und Schreiben \u00fcber die <code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">android.database.Cursor<\/code> API.<\/p>\n<p>Die Peer-Klassen enthalten auch die SQLite DDL Definitionen mit den ben\u00f6tigten Datentypen zur Anlage der Tabellen.<\/p>\n<div class=\"osc-res-tab tabbable   osc-tabs-left\"><div style=\"clear:both;width: 100%;\"><ul class=\"nav osc-res-nav nav-tabs osc-tabs-left-ul\" id=\"oscitas-restabs-1-one-to-many-relation-34890\"><li class=\"active\"><a href=\"#ert_pane1-0\" data-toggle=\"tab\">Customer SQLite Schema Peer<\/a><\/li><li class=\"\"><a href=\"#ert_pane1-1\" data-toggle=\"tab\">Order Schema Peer<\/a><\/li><\/ul><\/div><div style=\"clear:both;width: 100%;\"><ul class=\"tab-content\" id=\"oscitas-restabcontent-1-one-to-many-relation-34890\"><li class=\"tab-pane active\" id=\"ert_pane1-0\"><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package com.uc_mobileapps.seifesample01.bo.schema;\r\n\r\nimport com.uc_mobileapps.seifesample01.bo.Customer;\r\n\r\nimport android.content.ContentResolver;\r\nimport android.content.ContentValues;\r\nimport android.content.Context;\r\nimport android.database.Cursor;\r\nimport android.net.Uri;\r\nimport java.util.List;\r\nimport java.util.ArrayList;\r\n\r\npublic class CustomerSchema { \r\n  \/\/[begin seife autogenerated@\r\n\r\n  \/**\r\n   * Table name of the Customer table\r\n   *\/\r\n  public static String TBL_CUSTOMER = \"customer\";\r\n  \r\n\r\n  \/** \r\n   * a simple primary key field\r\n   *\/\r\n  public static String COL_ID = \"id\";\r\n\r\n  public static String COL_NAME = \"name\";\r\n  \r\n  \/**\r\n   * All columns\r\n   *\/\r\n  public static String[] COLUMNS = new String[] { COL_ID, COL_NAME\t};\r\n\r\n  \/**\r\n   * Table creation script\r\n   *\/\r\n  private static final String SQL_CREATE_TABLE_CUSTOMER =\r\n      \"create table \" + TBL_CUSTOMER + \" (\" + \r\n\r\n          COL_ID + \" integer primary key autoincrement,\" +\r\n          COL_NAME + \" text\" +\r\n          \")\";\r\n\r\n\r\n  private static CustomerSchema schema = new CustomerSchema();\r\n  public static CustomerSchema instance() {\r\n    return schema;\r\n  }\r\n\r\n  \/**\r\n   * Gets all attribute values of the bo as key value pairs\r\n   * @param bo may not be null\r\n   * @return new instance of {@link ContentValues}\r\n   *\/\r\n  public ContentValues getContentValues(Customer bo) {\r\n    ContentValues contentValues = new ContentValues();\r\n\r\n    if (bo.getId() != null) {\r\n      contentValues.put(COL_ID, bo.getId());\r\n    }\r\n    contentValues.put(COL_NAME, bo.getName());\r\n    return contentValues;\r\n  }\r\n\r\n  \/**\r\n   * Sets all attributes from the cursor\r\n   * @param cursorFrom the cursor to read from\r\n   * @param bo may be null\r\n   * @return the bo passed as a parameter or a new instance\r\n   *\/\r\n  public Customer readFromCursor(Cursor cursorFrom, Customer bo)\r\n  {\r\n    if (bo == null) {\r\n      bo = new Customer();\r\n    }\r\n    final Cursor c = cursorFrom; \r\n\r\n    bo.setId(c.isNull(c.getColumnIndex(COL_ID)) ? null : c.getLong(c.getColumnIndex(COL_ID)));\r\n    bo.setName(c.getString(c.getColumnIndex(COL_NAME)));\r\n    return bo;\r\n  }\r\n  \r\n  \/**\r\n   * @return hard-coded table creation scripts\r\n   *\/\r\n  public List&lt;String&gt; getTableScripts() {\r\n    List&lt;String&gt; result = new ArrayList&lt;String&gt;();\r\n    result.add(SQL_CREATE_TABLE_CUSTOMER); \r\n    return result;\r\n  }\r\n  \/\/@end seife autogenerated]\r\n}\r\n<\/pre>\n<p><\/li><li class=\"tab-pane \" id=\"ert_pane1-1\"><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package com.uc_mobileapps.seifesample01.bo.schema;\r\n\r\nimport com.uc_mobileapps.seifesample01.bo.Order;\r\n\r\nimport android.content.ContentResolver;\r\nimport android.content.ContentValues;\r\nimport android.content.Context;\r\nimport android.database.Cursor;\r\nimport android.net.Uri;\r\nimport java.util.List;\r\nimport java.util.ArrayList;\r\n\r\nimport com.uc_mobileapps.seifesample01.bo.Customer;\r\nimport com.uc_mobileapps.seifesample01.bo.schema.OrderSchema;\r\nimport java.util.Date;\r\n\r\npublic class OrderSchema { \r\n  \/\/[begin seife autogenerated@\r\n\r\n  \/**\r\n   * Table name of the Order table\r\n   *\/\r\n  public static String TBL_ORDER = \"order\";\r\n  \r\n\r\n  public static String COL_ID = \"id\";\r\n\r\n  public static String COL_FK_CUSTOMER_CUSTOMER_ID = \"customerId\";\r\n\r\n  public static String COL_ORDER_DATE = \"orderDate\";\r\n  \r\n  \/**\r\n   * All columns\r\n   *\/\r\n  public static String[] COLUMNS = new String[] { COL_ID, COL_FK_CUSTOMER_CUSTOMER_ID, COL_ORDER_DATE\t};\r\n\r\n  \/**\r\n   * Table creation script\r\n   *\/\r\n  private static final String SQL_CREATE_TABLE_ORDER =\r\n      \"create table \" + TBL_ORDER + \" (\" + \r\n\r\n          COL_ID + \" integer primary key autoincrement,\" +\r\n          COL_FK_CUSTOMER_CUSTOMER_ID + \" integer,\" +\r\n          COL_ORDER_DATE + \" integer not null\" +\r\n          \", \" +\r\n          \" FOREIGN KEY(\" + COL_FK_CUSTOMER_CUSTOMER_ID  + \")\" +\r\n          \" REFERENCES \" + CustomerSchema.TBL_CUSTOMER \r\n          +\"(\" + CustomerSchema.COL_ID  + \")\" +\t\t\t \t\t\r\n          \")\";\r\n\r\n\r\n  private static OrderSchema schema = new OrderSchema();\r\n  public static OrderSchema instance() {\r\n    return schema;\r\n  }\r\n\r\n  \/**\r\n   * Checks for constraints defined on the fields\r\n   *\/\r\n  public boolean checkConstraints(ContentValues values) {\r\n    \/\/text,scancode,meta\r\n    return true;\r\n  }\r\n  \r\n  \/**\r\n   * Gets all attribute values of the bo as key value pairs\r\n   * @param bo may not be null\r\n   * @return new instance of {@link ContentValues}\r\n   *\/\r\n  public ContentValues getContentValues(Order bo) {\r\n    ContentValues contentValues = new ContentValues();\r\n\r\n    if (bo.getId() != null) {\r\n      contentValues.put(COL_ID, bo.getId());\r\n    }\r\n    contentValues.put(COL_FK_CUSTOMER_CUSTOMER_ID, bo.getCustomerId());\r\n    contentValues.put(COL_ORDER_DATE, (bo.getOrderDate()!=null) ? bo.getOrderDate().getTime() : null);\r\n    return contentValues;\r\n  }\r\n\r\n  \/**\r\n   * Sets all attributes from the cursor\r\n   * @param cursorFrom the cursor to read from\r\n   * @param bo may be null\r\n   * @return the bo passed as a parameter or a new instance\r\n   *\/\r\n  public Order readFromCursor(Cursor cursorFrom, Order bo)\r\n  {\r\n    if (bo == null) {\r\n      bo = new Order();\r\n    }\r\n    final Cursor c = cursorFrom; \r\n\r\n    bo.setId(c.isNull(c.getColumnIndex(COL_ID)) ? null : c.getLong(c.getColumnIndex(COL_ID)));\r\n    bo.setCustomerId(c.isNull(c.getColumnIndex(COL_FK_CUSTOMER_CUSTOMER_ID)) ? null : c.getLong(c.getColumnIndex(COL_FK_CUSTOMER_CUSTOMER_ID)));\r\n    bo.setOrderDate(c.isNull(c.getColumnIndex(COL_ORDER_DATE)) ? null : new java.util.Date(c.getLong(c.getColumnIndex(COL_ORDER_DATE))));\r\n    return bo;\r\n  }\r\n  \r\n  \/**\r\n   * @return hard-coded table creation scripts\r\n   *\/\r\n  public List&lt;String&gt; getTableScripts() {\r\n    List&lt;String&gt; result = new ArrayList&lt;String&gt;();\r\n    result.add(SQL_CREATE_TABLE_ORDER); \r\n    return result;\r\n  }\r\n\r\n  \/** \r\n   * Resolves the Customer instance for the Order#customer field\r\n   * @param context the ContentResolver is obtained from there\r\n   * @param bo the business object to get the foreign key reference from\r\n   * @return\r\n   *\/\r\n  public Customer resolveCustomerField(Context context, Order bo) {\r\n    ContentResolver contentResolver = context.getContentResolver();\r\n    String selection = null;\r\n    String[] selectionArgs = null;\r\n\r\n    Uri uri = com.uc_mobileapps.seifesample01.provider.CustomerProvider.getContentUriCustomer().buildUpon()\r\n        .appendQueryParameter(CustomerSchema.COL_ID, String.valueOf(bo.getId()))\r\n        .build();\r\n    Cursor cursor = contentResolver.query(uri, CustomerSchema.COLUMNS, selection, selectionArgs, null);\r\n    try {\r\n      Customer foreignInstance = \r\n          CustomerSchema.instance().readFromCursor(cursor, new Customer());\r\n      \/\/bo.setCustomer(foreignInstance);\r\n      return foreignInstance;\r\n    } finally {\r\n      cursor.close();\r\n    }\r\n  }\r\n  \/\/@end seife autogenerated]\t\r\n}\r\n<\/pre>\n<p><\/li><\/ul><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Der Anwendungsfall &#8220;Kunde hat mehrere Bestellungen&#8221; kann durch zwei Gesch\u00e4ftsobjekte Customer und Order modelliert werden. Durch Nutzung der Source-Level Annotationen wird die Beziehung zwischen den Instanzen, wie bei JPA \u00fcblich deklarativ beschrieben. @SeifeClass( generatorOptions = { GeneratorOption.BOCLASS, GeneratorOption.SCHEMA_PEER, GeneratorOption.DB_HELPER+&#8221;=com.uc_mobileapps.seifesample01.db.CustomerDB&#8221;, GeneratorOption.DATA_PROVIDER+&#8221;=com.uc_mobileapps.seifesample01.provider.CustomerProvider&#8221; }, description = &#8220;A customer object, since this is a source annotation it won&#8217;t occur &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/\"> <span class=\"screen-reader-text\">Beispiel 1 &#8211; One-To-Many Relation<\/span> Weiterlesen &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":173,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.5.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Beispiel 1 - One-To-Many Relation - UC Mobile Apps<\/title>\n<meta name=\"description\" content=\"Deklarative Definition des Datenmodells: 1 zu n Relation in der Annotation. Dieses Beispiel zeigt das Mapping der Objekt-Relation\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#organization\",\"name\":\"UC Mobile Apps\",\"url\":\"http:\/\/uc-mobileapps.com\/de\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#logo\",\"inLanguage\":\"de-DE\",\"url\":\"http:\/\/uc-mobileapps.com\/de\/wp-content\/uploads\/sites\/2\/2018\/07\/cropped-UC-Logo.png\",\"contentUrl\":\"http:\/\/uc-mobileapps.com\/de\/wp-content\/uploads\/sites\/2\/2018\/07\/cropped-UC-Logo.png\",\"width\":512,\"height\":512,\"caption\":\"UC Mobile Apps\"},\"image\":{\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#website\",\"url\":\"http:\/\/uc-mobileapps.com\/de\/\",\"name\":\"UC Mobile Apps\",\"description\":\"Innovative Softwareentwicklung und mobile Anwendungen\",\"publisher\":{\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/uc-mobileapps.com\/de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#webpage\",\"url\":\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/\",\"name\":\"Beispiel 1 - One-To-Many Relation - UC Mobile Apps\",\"isPartOf\":{\"@id\":\"http:\/\/uc-mobileapps.com\/de\/#website\"},\"datePublished\":\"2017-03-12T09:30:12+00:00\",\"dateModified\":\"2022-04-08T06:10:36+00:00\",\"description\":\"Deklarative Definition des Datenmodells: 1 zu n Relation in der Annotation. Dieses Beispiel zeigt das Mapping der Objekt-Relation\",\"breadcrumb\":{\"@id\":\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/uc-mobileapps.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Code Generator f\u00fcr SQLite and DataProvider Schnittstellen\",\"item\":\"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Beispiel 1\",\"item\":\"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Beispiel 1 &#8211; One-To-Many Relation\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Beispiel 1 - One-To-Many Relation - UC Mobile Apps","description":"Deklarative Definition des Datenmodells: 1 zu n Relation in der Annotation. Dieses Beispiel zeigt das Mapping der Objekt-Relation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"5 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"http:\/\/uc-mobileapps.com\/de\/#organization","name":"UC Mobile Apps","url":"http:\/\/uc-mobileapps.com\/de\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"http:\/\/uc-mobileapps.com\/de\/#logo","inLanguage":"de-DE","url":"http:\/\/uc-mobileapps.com\/de\/wp-content\/uploads\/sites\/2\/2018\/07\/cropped-UC-Logo.png","contentUrl":"http:\/\/uc-mobileapps.com\/de\/wp-content\/uploads\/sites\/2\/2018\/07\/cropped-UC-Logo.png","width":512,"height":512,"caption":"UC Mobile Apps"},"image":{"@id":"http:\/\/uc-mobileapps.com\/de\/#logo"}},{"@type":"WebSite","@id":"http:\/\/uc-mobileapps.com\/de\/#website","url":"http:\/\/uc-mobileapps.com\/de\/","name":"UC Mobile Apps","description":"Innovative Softwareentwicklung und mobile Anwendungen","publisher":{"@id":"http:\/\/uc-mobileapps.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/uc-mobileapps.com\/de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"WebPage","@id":"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#webpage","url":"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/","name":"Beispiel 1 - One-To-Many Relation - UC Mobile Apps","isPartOf":{"@id":"http:\/\/uc-mobileapps.com\/de\/#website"},"datePublished":"2017-03-12T09:30:12+00:00","dateModified":"2022-04-08T06:10:36+00:00","description":"Deklarative Definition des Datenmodells: 1 zu n Relation in der Annotation. Dieses Beispiel zeigt das Mapping der Objekt-Relation","breadcrumb":{"@id":"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/one-to-many-relation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/uc-mobileapps.com\/de\/"},{"@type":"ListItem","position":2,"name":"Android Code Generator f\u00fcr SQLite and DataProvider Schnittstellen","item":"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/"},{"@type":"ListItem","position":3,"name":"Beispiel 1","item":"http:\/\/uc-mobileapps.com\/de\/android-sqlite-dataprovider-code-generator\/beispiel-1\/"},{"@type":"ListItem","position":4,"name":"Beispiel 1 &#8211; One-To-Many Relation"}]}]}},"_links":{"self":[{"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/pages\/66"}],"collection":[{"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":21,"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/pages\/66\/revisions"}],"predecessor-version":[{"id":179,"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/pages\/66\/revisions\/179"}],"up":[{"embeddable":true,"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/pages\/173"}],"wp:attachment":[{"href":"http:\/\/uc-mobileapps.com\/de\/wp-json\/wp\/v2\/media?parent=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}