Skip to content

Instantly share code, notes, and snippets.

View idevai's full-sized avatar

Istvan Devai idevai

View GitHub Profile
@idevai
idevai / hibernate_json_calculated_property.java
Created February 10, 2018 12:55
Using oracle JSON_VALUE as Hibernate calculated property
@Formula("JSON_VALUE(JSON_COLUMN, '$.my.json.property')")
private String myProperty;
@idevai
idevai / hibernate_json_criteria_correct.java
Created February 10, 2018 12:48
Hibernate Oracle JSON function usage - correct
cb.equal(cb.function("JSON_VALUE", String.class,
new HibernateInlineExpression(cb, "JSON_COLUMN"),
new HibernateInlineExpression(cb, "'$.my.json.property'")),
new LiteralExpression<>((CriteriaBuilderImpl) cb, String.class, "somevalue"));
public class HibernateInlineExpression extends LiteralExpression<String> {
public HibernateInlineExpression(CriteriaBuilder criteriaBuilder, String literal) {
super((CriteriaBuilderImpl) criteriaBuilder, literal);
}
@Override
public String render(RenderingContext renderingContext) {
return getLiteral();
}
@idevai
idevai / hibernate_json_criteria_wrong.java
Last active February 10, 2018 12:40
Using Oracle JSON_VALUE from CriteriaBuilder - the wrong way
CriteriaBuilder cb = getCriteria();
cb.equal(cb.function("JSON_VALUE", String.class,
cb.literal("JSON_COLUMN"), cb.literal("$.my.json.property")),
"value");
/*
* Results in ORA-40454: path expression not a literal
*/
@idevai
idevai / oracle_json_sql_example.sql
Last active February 10, 2018 12:58
Oracle JSON query example
SELECT
JSON_QUERY(JSON_COLUMN, '$.my.json.property' WITH WRAPPER) AS PROP,
JSON_VALUE(JSON_COLUMN, '$.another.json.property') AS PROP2
FROM MY_TABLE