NullPointerException in {{LiteralExpression#renderProjection}}. {{ValueHandlerFactory.determineAppropriateHandler( literal.getClass() );}} returns null for enum classes.
{code:java} public String renderProjection(RenderingContext renderingContext) { // some drivers/servers do not like parameters in the select clause final ValueHandlerFactory.ValueHandler handler = ValueHandlerFactory.determineAppropriateHandler( literal.getClass() ); if ( ValueHandlerFactory.isCharacter( literal ) ) { return '\'' + handler.render( literal ) + '\''; } else { return handler.render( literal ); } } {code}
Triggered when constructing a new result object using a selectCase criteria.
{code:java} public static class Foo { enum Status { BAR, BAZ } private final Status foo; public Foo(final Status foo) { this.foo = foo; } } @Entity public static class Wibble { @Id private int id; } public List<Foo> query() { final CriteriaBuilder cb = em.getCriteriaBuilder(); final CriteriaQuery<Foo> query = cb.createQuery(Foo.class); final Root<Wibble> root = query.from(Wibble.class);
query .select(cb.construct(Foo.class, cb.selectCase() .when(cb.equal(root.get(Wibble_.id), 1), Foo.Status.BAR) .otherwise(Foo.Status.BAZ))); return em.createQuery(query).getResultList(); } {code} |
|