Estou tentando realizar a consulta abaixo, porém estou recebendo erro. Eu já tentei obter o ano de várias maneiras, mas nenhuma da certo, alguém poderia me ajudar?
Tentativas: to_char(…, ‘yyyy’)
to_date(…, ‘yyyy’)
Todas não são reconhecidas pelo entityManager.
public String findTeste() {
String classe = MetaBaseAtivos.class.getName().toString();
String nomePuro = classe.substring(classe.lastIndexOf(".") + 1, classe.length());
StringBuilder sb = new StringBuilder();
sb.append("select year(").append(nomePuro.toLowerCase()).append(".dataMeta) from ").append(nomePuro).append(" ").append(nomePuro.toLowerCase()).append(" ");
sb.append(" where 1 = 1 and ").append(nomePuro.toLowerCase()).append(".codigo = 303231");
javax.persistence.Query q = getEntityManager().createQuery(sb.toString());
return (String) q.getSingleResult();
}
Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.7.0.v20170811-d680af5): org.eclipse.persistence.exceptions.JPQLException Exception Description: Syntax error parsing [select year(metabaseativos.dataMeta) from MetaBaseAtivos metabaseativos where 1 = 1 and metabaseativos.codigo = 303231]. [10, 11] The SELECT clause has ‘year’ and ‘(metabaseativos.dataMeta)’ that are not separated by a comma. at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException(HermesParser.java:155) at org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate(HermesParser.java:334) at org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:278) at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(HermesParser.java:163) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:140) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:116) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.(EJBQueryImpl.java:102) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.(EJBQueryImpl.java:86) at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1741) … 88 more