{"id":58088,"date":"2016-07-04T13:00:18","date_gmt":"2016-07-04T10:00:18","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=58088"},"modified":"2016-07-03T12:15:58","modified_gmt":"2016-07-03T09:15:58","slug":"__trashed-4","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html","title":{"rendered":"Query DynamoDB Items with Java"},"content":{"rendered":"<p>On a previous <a href=\"https:\/\/www.javacodegeeks.com\/2016\/06\/insert-items-dynamodb-tables-using-java.html\">post<\/a> we proceeded on inserting data on a DynamoDB database.<\/p>\n<p>On this tutorial we will issue some basic queries against our DynamoDB tables. The main rule is that every query has to use the hash key.<\/p>\n<p>The simplest form of query is using the hash key only. We will query the Users table on this one. There would be only one result, therefore there is no use on iterating the Items list.<\/p>\n<pre class=\"brush:java\">public Map&lt;String,AttributeValue&gt; getUser(String email) {\r\n\r\n        Map&lt;String,String&gt; expressionAttributesNames = new HashMap&lt;&gt;();\r\n        expressionAttributesNames.put(\"#email\",\"email\");\r\n\r\n        Map&lt;String,AttributeValue&gt; expressionAttributeValues = new HashMap&lt;&gt;();\r\n        expressionAttributeValues.put(\":emailValue\",new AttributeValue().withS(email));\r\n\r\n        QueryRequest queryRequest = new QueryRequest()\r\n                .withTableName(TABLE_NAME)\r\n                .withKeyConditionExpression(\"#email = :emailValue\")\r\n                .withExpressionAttributeNames(expressionAttributesNames)\r\n                .withExpressionAttributeValues(expressionAttributeValues);\r\n\r\n        QueryResult queryResult = amazonDynamoDB.query(queryRequest);\r\n\r\n        List&lt;Map&lt;String,AttributeValue&gt;&gt; attributeValues = queryResult.getItems();\r\n\r\n        if(attributeValues.size()&gt;0) {\r\n            return attributeValues.get(0);\r\n        } else {\r\n            return null;\r\n        }\r\n    }<\/pre>\n<p>However we can issue more complex queries using <a href=\"http:\/\/docs.aws.amazon.com\/amazondynamodb\/latest\/developerguide\/QueryAndScan.html#QueryAndScan.Query\">conditions<\/a>.<br \/>\nLogins Table suits well for an example. We will issue a query that will fetch login attempts between to dates.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<pre class=\"brush:java\">public List&lt;Map&lt;String ,AttributeValue&gt;&gt; queryLoginsBetween(String email, Date from, Date to) {\r\n\r\n        List&lt;Map&lt;String,AttributeValue&gt;&gt; items = new ArrayList&lt;&gt;();\r\n\r\n        Map&lt;String,String&gt; expressionAttributesNames = new HashMap&lt;&gt;();\r\n        expressionAttributesNames.put(\"#email\",\"email\");\r\n        expressionAttributesNames.put(\"#timestamp\",\"timestamp\");\r\n\r\n        Map&lt;String,AttributeValue&gt; expressionAttributeValues = new HashMap&lt;&gt;();\r\n        expressionAttributeValues.put(\":emailValue\",new AttributeValue().withS(email));\r\n        expressionAttributeValues.put(\":from\",new AttributeValue().withN(Long.toString(from.getTime())));\r\n        expressionAttributeValues.put(\":to\",new AttributeValue().withN(Long.toString(to.getTime())));\r\n\r\n        QueryRequest queryRequest = new QueryRequest()\r\n                .withTableName(TABLE_NAME)\r\n                .withKeyConditionExpression(\"#email = :emailValue and #timestamp BETWEEN :from AND :to \")\r\n                .withExpressionAttributeNames(expressionAttributesNames)\r\n                .withExpressionAttributeValues(expressionAttributeValues);\r\n\r\n        Map&lt;String,AttributeValue&gt; lastKey = null;\r\n\r\n        do {\r\n\r\n            QueryResult queryResult = amazonDynamoDB.query(queryRequest);\r\n            List&lt;Map&lt;String,AttributeValue&gt;&gt; results = queryResult.getItems();\r\n            items.addAll(results);\r\n            lastKey = queryResult.getLastEvaluatedKey();\r\n        } while (lastKey!=null);\r\n\r\n        return items;\r\n    }<\/pre>\n<p>Keep in mind that DynamoDB Fetches data in pages, therefore you have to issue the same request more than once in case of multiple pages. Therefore you have to use the last evaluated key to your next request.<\/p>\n<p>Last but not least querying on indexes is one of the basic actions. It is the same routine either for local or global secondary indexes.<br \/>\nKeep in mind that the results fetched depend on the projection type we specified once creating the Table. In our case the projection type is for all fields.<\/p>\n<p>We shall use the Supervisors table.<\/p>\n<pre class=\"brush:java\">public Map&lt;String ,AttributeValue&gt; getSupervisor(String company,String factory) {\r\n\r\n        List&lt;Map&lt;String,AttributeValue&gt;&gt; items = new ArrayList&lt;&gt;();\r\n\r\n        Map&lt;String,String&gt; expressionAttributesNames = new HashMap&lt;&gt;();\r\n        expressionAttributesNames.put(\"#company\",\"company\");\r\n        expressionAttributesNames.put(\"#factory\",\"factory\");\r\n\r\n        Map&lt;String,AttributeValue&gt; expressionAttributeValues = new HashMap&lt;&gt;();\r\n        expressionAttributeValues.put(\":company\",new AttributeValue().withS(company));\r\n        expressionAttributeValues.put(\":factory\",new AttributeValue().withS(factory));\r\n\r\n        QueryRequest queryRequest = new QueryRequest()\r\n                .withTableName(TABLE_NAME)\r\n                .withKeyConditionExpression(\"#company = :company and #factory = :factory \")\r\n                .withIndexName(\"FactoryIndex\")\r\n                .withExpressionAttributeNames(expressionAttributesNames)\r\n                .withExpressionAttributeValues(expressionAttributeValues);\r\n\r\n        QueryResult queryResult = amazonDynamoDB.query(queryRequest);\r\n\r\n        List&lt;Map&lt;String,AttributeValue&gt;&gt; attributeValues = queryResult.getItems();\r\n\r\n        if(attributeValues.size()&gt;0) {\r\n            return attributeValues.get(0);\r\n        } else {\r\n            return null;\r\n        }\r\n    }<\/pre>\n<p>You can find full source code with unit tests on <a href=\"https:\/\/github.com\/gkatzioura\/egkatzioura.wordpress.com\/tree\/master\/DynamoDBTutorial\">github<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/egkatzioura.wordpress.com\/2016\/07\/02\/query-dynamodb-items-with-java\/\">Query DynamoDB Items with Java<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/join-us\/jcg\/\">JCG partner<\/a> Emmanouil Gkatziouras at the <a href=\"http:\/\/egkatzioura.wordpress.com\/\">gkatzioura<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables. The main rule is that every query has to use the hash key. The simplest form of query is using the hash key only. We will query the Users &hellip;<\/p>\n","protected":false},"author":936,"featured_media":148,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[1365],"class_list":["post-58088","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-java","tag-dynamodb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Query DynamoDB Items with Java - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Query DynamoDB Items with Java - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-04T10:00:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Emmanouil Gkatziouras\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emmanouil Gkatziouras\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html\"},\"author\":{\"name\":\"Emmanouil Gkatziouras\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/5eee031b356c7682e1fd24c8297561c6\"},\"headline\":\"Query DynamoDB Items with Java\",\"datePublished\":\"2016-07-04T10:00:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html\"},\"wordCount\":233,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"keywords\":[\"DynamoDB\"],\"articleSection\":[\"Core Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html\",\"name\":\"Query DynamoDB Items with Java - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"datePublished\":\"2016-07-04T10:00:18+00:00\",\"description\":\"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/07\\\/__trashed-4.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Core Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/core-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Query DynamoDB Items with Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/5eee031b356c7682e1fd24c8297561c6\",\"name\":\"Emmanouil Gkatziouras\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g\",\"caption\":\"Emmanouil Gkatziouras\"},\"description\":\"He is a versatile software engineer with experience in a wide variety of applications\\\/services.He is enthusiastic about new projects, embracing new technologies, and getting to know people in the field of software.\",\"sameAs\":[\"http:\\\/\\\/egkatzioura.wordpress.com\\\/\",\"https:\\\/\\\/gr.linkedin.com\\\/in\\\/gkatziourasemmanouil\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/emmanouil-gkatziouras\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Query DynamoDB Items with Java - Java Code Geeks","description":"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.","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:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html","og_locale":"en_US","og_type":"article","og_title":"Query DynamoDB Items with Java - Java Code Geeks","og_description":"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.","og_url":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-07-04T10:00:18+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","type":"image\/jpeg"}],"author":"Emmanouil Gkatziouras","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Emmanouil Gkatziouras","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html"},"author":{"name":"Emmanouil Gkatziouras","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/5eee031b356c7682e1fd24c8297561c6"},"headline":"Query DynamoDB Items with Java","datePublished":"2016-07-04T10:00:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html"},"wordCount":233,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","keywords":["DynamoDB"],"articleSection":["Core Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html","url":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html","name":"Query DynamoDB Items with Java - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","datePublished":"2016-07-04T10:00:18+00:00","description":"On a previous post we proceeded on inserting data on a DynamoDB database. On this tutorial we will issue some basic queries against our DynamoDB tables.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2016\/07\/__trashed-4.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Core Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/core-java"},{"@type":"ListItem","position":4,"name":"Query DynamoDB Items with Java"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/5eee031b356c7682e1fd24c8297561c6","name":"Emmanouil Gkatziouras","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g","caption":"Emmanouil Gkatziouras"},"description":"He is a versatile software engineer with experience in a wide variety of applications\/services.He is enthusiastic about new projects, embracing new technologies, and getting to know people in the field of software.","sameAs":["http:\/\/egkatzioura.wordpress.com\/","https:\/\/gr.linkedin.com\/in\/gkatziourasemmanouil"],"url":"https:\/\/www.javacodegeeks.com\/author\/emmanouil-gkatziouras"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/58088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/936"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=58088"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/58088\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=58088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=58088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=58088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}