{"action":"closed","issue":{"url":"https://api.github.com/repos/jdbi/jdbi/issues/188","labels_url":"https://api.github.com/repos/jdbi/jdbi/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/jdbi/jdbi/issues/188/comments","events_url":"https://api.github.com/repos/jdbi/jdbi/issues/188/events","html_url":"https://github.com/jdbi/jdbi/issues/188","id":111296632,"number":188,"title":"Support interface default methods in SQL objects","user":{"login":"qualidafial","id":38629,"avatar_url":"https://avatars.githubusercontent.com/u/38629?v=3","gravatar_id":"","url":"https://api.github.com/users/qualidafial","html_url":"https://github.com/qualidafial","followers_url":"https://api.github.com/users/qualidafial/followers","following_url":"https://api.github.com/users/qualidafial/following{/other_user}","gists_url":"https://api.github.com/users/qualidafial/gists{/gist_id}","starred_url":"https://api.github.com/users/qualidafial/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qualidafial/subscriptions","organizations_url":"https://api.github.com/users/qualidafial/orgs","repos_url":"https://api.github.com/users/qualidafial/repos","events_url":"https://api.github.com/users/qualidafial/events{/privacy}","received_events_url":"https://api.github.com/users/qualidafial/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/jdbi/jdbi/milestones/2","html_url":"https://github.com/jdbi/jdbi/milestones/JDBI%203%20Requests","labels_url":"https://api.github.com/repos/jdbi/jdbi/milestones/2/labels","id":382959,"number":2,"title":"JDBI 3 Requests","description":"Bucket for issues that should be in JDBI 3","creator":{"login":"stevenschlansker","id":129097,"avatar_url":"https://avatars.githubusercontent.com/u/129097?v=3","gravatar_id":"","url":"https://api.github.com/users/stevenschlansker","html_url":"https://github.com/stevenschlansker","followers_url":"https://api.github.com/users/stevenschlansker/followers","following_url":"https://api.github.com/users/stevenschlansker/following{/other_user}","gists_url":"https://api.github.com/users/stevenschlansker/gists{/gist_id}","starred_url":"https://api.github.com/users/stevenschlansker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevenschlansker/subscriptions","organizations_url":"https://api.github.com/users/stevenschlansker/orgs","repos_url":"https://api.github.com/users/stevenschlansker/repos","events_url":"https://api.github.com/users/stevenschlansker/events{/privacy}","received_events_url":"https://api.github.com/users/stevenschlansker/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":3,"state":"open","created_at":"2013-07-20T23:48:16Z","updated_at":"2015-10-19T21:52:58Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-10-14T00:08:06Z","updated_at":"2015-10-19T21:52:58Z","closed_at":"2015-10-19T21:52:58Z","body":"Java 8 introduces the concept of default interface methods. JDBI 3 should detect when an interface method has a default implementation, and call that implementation in the absence of any competing annotations e.g. `@SqlQuery`\r\n\r\nExample:\r\n\r\n    interface FooDao extends GetHandle {\r\n      default List<Foo> list(Optional<Bar> bar) {\r\n        StringBuilder sql = new StringBuilder(\"select * from foo\");\r\n        bar.ifPresent(b -> sql.append(\" and bar = :bar\"));\r\n        return getHandle().createQuery(sql.toString())\r\n                          .bind(\"bar\", bar.orElse(null))\r\n                          .mapTo(Foo.class)\r\n                          .list();\r\n      }\r\n    }"}}