¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

El significado del símbolo ^ en una consulta de búsqueda flexible

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Hola experto,

Estoy tratando de entender el símbolo de caret. ¿Cuál es el significado del símbolo ^ en una consulta de búsqueda flexible?

Seleccionar * de {AbstractCmsComponent^ como p1}

Gracias de antemano 🙏

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

No pude encontrar ninguna documentación, pero recuerdo haber visto una explicación del uso del símbolo caret (^). Si lo encuentro, actualizaré mi respuesta con la documentación relacionada.

De todos modos, investigué la Traducción de Búsqueda Flexible (en la versión 1905.24) desde el lado del código y descubrí que hay 3 caracteres que se utilizan junto con el nombre del tipo en la Consulta de Búsqueda Flexible, que son (!), (*) y (^). El código relacionado se puede encontrar en ParsedType.class (paquete: de.hybris.platform.persistence.flexiblesearch, método: public static String[] splitTypeExpression(String expr)).

En ese método, estos caracteres están relacionados con las siguientes cadenas

(!) : "exact"
(*) : "alltypes"

(^) : "deploymenttypes"

Puedes encontrar la explicación detallada para el carácter (!) (correspondiente a la palabra clave "exact") en https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/2011/en-US/b3c53d29850c47faa977f0cda707...

Y el código en FromClause.class tiene una llamada al constructor para estas coincidencias de la siguiente manera:

ParsedType parsedType = new ParsedType(this, typeCode, alias, noSubtypes, disableTypeChecks, excludeSubtypesWithOwnDeployment);

noSubtypes es verdadero cuando se usa "exact"

disableTypeChecks es verdadero cuando se usa "alltypes"

excludeSubtypesWithOwnDeployment es verdadero cuando se usa "deploymenttypes"

Esto parece estar diciendo algo, pero es mejor para entender los casos con un ejemplo.

Por ejemplo, usaré AbstractCoupon de la extensión couponservices y CustomerCoupon de la extensión customercouponservices que extiende AbstractCoupon.

Ambos tipos tienen sus propias tablas de implementación.

Cuando buscamos sin ninguno de ellos

SELECT {PK} FROM {AbstractCoupon AS c}

Se traducirá de la siguiente manera

SELECT item_t0.PK FROM coupon item_t0 WHERE (item_t0.TypePkString IN (?,?,?) ) UNION ALL SELECT item_t0.PK FROM customercoupons item_t0 WHERE (item_t0.TypePkString=? )

Parámetros reemplazados: [8796136538194, 8796136505426, 8796136472658, 8796136603730]

Dado que CustomerCoupon extiende AbstractCoupon, se traduce como una consulta de UNION.

Si usamos (!) en la consulta

SELECT {PK} FROM {AbstractCoupon! AS c}

Se traducirá de la siguiente manera

SELECT  item_t0.PK 
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?