{"action":"opened","issue":{"url":"https://api.github.com/repos/ebean-orm/avaje-ebeanorm/issues/417","labels_url":"https://api.github.com/repos/ebean-orm/avaje-ebeanorm/issues/417/labels{/name}","comments_url":"https://api.github.com/repos/ebean-orm/avaje-ebeanorm/issues/417/comments","events_url":"https://api.github.com/repos/ebean-orm/avaje-ebeanorm/issues/417/events","html_url":"https://github.com/ebean-orm/avaje-ebeanorm/issues/417","id":107094615,"number":417,"title":"ENH: Add JSON expressions ... path exists and value at path equals value","user":{"login":"rbygrave","id":208973,"avatar_url":"https://avatars.githubusercontent.com/u/208973?v=3","gravatar_id":"","url":"https://api.github.com/users/rbygrave","html_url":"https://github.com/rbygrave","followers_url":"https://api.github.com/users/rbygrave/followers","following_url":"https://api.github.com/users/rbygrave/following{/other_user}","gists_url":"https://api.github.com/users/rbygrave/gists{/gist_id}","starred_url":"https://api.github.com/users/rbygrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbygrave/subscriptions","organizations_url":"https://api.github.com/users/rbygrave/orgs","repos_url":"https://api.github.com/users/rbygrave/repos","events_url":"https://api.github.com/users/rbygrave/events{/privacy}","received_events_url":"https://api.github.com/users/rbygrave/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ebean-orm/avaje-ebeanorm/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"rbygrave","id":208973,"avatar_url":"https://avatars.githubusercontent.com/u/208973?v=3","gravatar_id":"","url":"https://api.github.com/users/rbygrave","html_url":"https://github.com/rbygrave","followers_url":"https://api.github.com/users/rbygrave/followers","following_url":"https://api.github.com/users/rbygrave/following{/other_user}","gists_url":"https://api.github.com/users/rbygrave/gists{/gist_id}","starred_url":"https://api.github.com/users/rbygrave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbygrave/subscriptions","organizations_url":"https://api.github.com/users/rbygrave/orgs","repos_url":"https://api.github.com/users/rbygrave/repos","events_url":"https://api.github.com/users/rbygrave/events{/privacy}","received_events_url":"https://api.github.com/users/rbygrave/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-09-17T23:10:13Z","updated_at":"2015-09-17T23:10:13Z","closed_at":null,"body":"So Postgres and Oracle have JSON expressions and currently with Ebean you need to use a raw() expression to have these in your where clause like:\r\n\r\n```java\r\nList<SimpleDoc> docs = SimpleDoc.find.where()\r\n  .raw(\"jsonbExists(content#>'{docName}', 'My document')\")\r\n  .findList();\r\n```\r\n\r\nThis enhancement would add 'path exists' and 'value at path equals ?' expressions to the ExpressionList to make this much nicer to use.\r\n"}}