Expresiones de ruta

Una expresión de ruta es una variable identificativa seguida de un operador de navegación (.) y un nombre de persistencia gestionada por contenedor (CMP) o de relación.

Puede navegarse adicionalmente por una expresión path que conduce a un campo cmr si el campo cmr tiene un valor individual. Si expresión path conduce a una relación de varios valores, entonces la expresión path es terminal y no se puede navegar más por la misma. Si la expresión path conduce a un campo CMP cuyo tipo es un objeto de valor, es posible navegar por los atributos del objeto de valor.

Ejemplo: objeto de valor

Suponga que address es un campo CMP para EmpBean, que es un objeto de valor.
SELECT  object(e)  FROM EmpBean e
WHERE  e.address.distance('San Jose') < 10  and e.address.zip = 95037

Es mejor utilizar el patrón de creación para correlacionar los atributos de objetos de valor con columnas relacionales, si intenta buscar atributos de valor. Si almacena objetos de valor con formato serializado, entonces cada objeto de valor debe recuperarse de la base de datos y deserializarse. Los métodos de objeto de valor solamente se pueden realizar en consultas dinámicas.

Una expresión path también puede navegar hasta un método de bean. El método se puede definir en la interfaz de bean remota o local. Los métodos solamente se pueden realizar en consultas dinámicas. No puede combinar los métodos remoto y local y una sola sentencia de consulta.

Si la consulta contiene métodos remotos, se debe ejecutar la consulta dinámica utilizando la interfaz remota de consultas. Utilizando la interfaz remota de consultas el servicio de consultas hace que se activen los beans y crea instancias de la interfaz de beans remota.

Del mismo modo, una sentencia de consulta con métodos de bean locales debe ejecutarse con la interfaz local de consulta. Esto hace que el servicio de consultas active los beans y las instancias de interfaz local.

No utilice los métodos get para acceder a los campos CMP y cmr de un bean.

Si un método tiene definiciones sobrecargadas, los métodos sobrecargados deben tener números de parámetros diferentes.

Los métodos deben tener argumentos de método y tipos de devolución que no sean void y los tipos de devolución debe ser tipos primitivos de byte, short, int, long, float, double, boolean, char o tipos wrapper como los de la lista siguiente:

Byte, Short, Integer, Long, Float, Double, BigDecimal, String, Boolean, Character, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp o java.util.Date

Si un argumento de entrada a un método es NULL, se supone que el método devuelve un valor NULL y que el método no se invoca.

Se puede utilizar una expresión path de valor de agrupación en la cláusula FROM como una declaración de miembro de agrupación y con los predicados IS EMPTY, MEMBER OF y EXISTS en la cláusula WHERE.

Tabla 1. Uso de cláusula FROM. En la tabla siguiente se enumeran tres usos válidos de la cláusula From y un uso no válido.
Sentencia de uso de cláusula FROM Sentencia de validez
FROM EmpBean e WHERE e.dept.mgr.name='Bob'
Aceptar
FROM EmpBean e WHERE e.dept.emps.name='BOB'
INVALID -- cannot navigate through emps because it is multivalued
FROM EmpBean e,  IN (e.dept.emps) e1
WHERE e1.name='BOB'
Aceptar
FROM EmpBean e WHERE e.dept.emps IS EMPTY
Aceptar

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_path
File name: cque_path.html