In Eclipselink, when I use @SqlResultSetMappings and I use Query Hint eclipselink.cursor, the console shows me the following exception:
Caused By: java.lang.IllegalArgumentException: Query null, query hint eclipselink.cursor is not valid for this type of query.
at org.eclipse.persistence.internal.jpa.QueryHintsHandler$CursorHint.applyToDatabaseQuery(QueryHintsHandler.java:1640)
at org.eclipse.persistence.internal.jpa.QueryHintsHandler$Hint.apply(QueryHintsHandler.java:367)
at org.eclipse.persistence.internal.jpa.QueryHintsHandler$Hint.apply(QueryHintsHandler.java:345)
at org.eclipse.persistence.internal.jpa.QueryHintsHandler.apply(QueryHintsHandler.java:172)
at org.eclipse.persistence.internal.jpa.QueryImpl.setHintInternal(QueryImpl.java:763)
Truncated. see log file for complete stacktrace
The code is:
@SqlResultSetMapping(
name = "resultSetMapping",
entities = @EntityResult(entityClass = Entity.class))
Query q = em.createNativeQuery(sql, "resultSetMapping";
q.setHint(QueryHints.CURSOR, HintValues.TRUE);
q.getSingleResult();
Why cannot I use SqlResultSetMappings with eclipselink.cursor?
em.createQuerywith JPQL the error is the same. why?select a, b.date from EntityA a, (select a.date, a.id.key from EntityB a) b where a.key = 1234 and b.key = a.key, that will return a List with a Entity and a date. This query can be used with cursor hint.