Consulta JCR SQL2: enlace del parámetro ISDESCENDANTNODE

Estoy escribiendo una consulta JCR SQL2 que enumera todos los nodos de un tipo dado que son descendientes de una determinada ruta. Cuando escribo mi consulta así:

Query query = queryManager.createQuery(
    "SELECT * FROM [cq:PageContent] where ISDESCENDANTNODE(\"/content\") AND ([sling:resourceType] = $resourceType)", Query.JCR_SQL2);
query.bindValue("resourceType", session.getValueFactory().createValue("my-type"));

funciona bien, pero cuando intento vincular lo que está debajo de ISDESCENDANTNODE de esta manera:

Query query = queryManager.createQuery(
    "SELECT * FROM [cq:PageContent] where ISDESCENDANTNODE($base) AND ([sling:resourceType] = $resourceType)", Query.JCR_SQL2);
query.bindValue("base", session.getValueFactory().createValue("/content"));
query.bindValue("resourceType", session.getValueFactory().createValue("my-type"));

se lanza una excepción en query.bindValue ("base", ...):

"javax.jcr.query.InvalidQueryException: java.text.ParseException: Consulta: SELECT * FROM [cq: PageContent] donde ISDESCENDANTNODE ($ base (*)) AND ([sling: resourceType] = $ resourceType); se espera:)"

Sé que puedo concatenar el valor del parámetro en la consulta, pero creo que es una mala práctica.

Respuesta 1

En algunos teléfonos, no puedo ejecutar un proyecto PlayN. Cada vez que obtengo: E / AndroidRuntime (10336): controlador no capturado: salida principal del hilo debido a una excepción no capturada E / AndroidRuntime (10336): java.lang ...

¿Cuál es realmente la diferencia entre db.isopen y db! = null o puedo usarlos en combinación y en qué orden lógico recomendado? por ejemplo, la base de datos db = null; intente {Sesión sesión = ...

Espero poder explicarte. No tengo ningún problema, solo quiero saber cómo construir el control del sistema de mis usuarios y quiero saber si mi idea es correcta: Mi idea: * Una clase (archivo 1) para funciones, métodos ...

Tengo un evento observable que puede tener múltiples observadores. El primer observador es siempre un código de limpieza que eliminará todas las demás suscripciones a los observables (esto se debe a que todos los demás ...