¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

O significado do símbolo ^ em uma consulta de busca flexível

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

Olá especialista,

Estou tentando entender o símbolo de caret. Qual é o significado do símbolo ^ em uma consulta de busca flexível?

Selecionar * de {AbstractCmsComponent^ como p1}

Obrigado antecipadamente ?

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

1 Respuestas

0
Cargando...

Não consegui encontrar nenhuma documentação, mas lembro de ter visto uma explicação sobre o uso do símbolo caret (^). Se encontrar, atualizarei minha resposta com a documentação relacionada.

De qualquer forma, investiguei a Tradução de Busca Flexível (na versão 1905.24) pelo lado do código e descobri que existem 3 caracteres que são usados junto com o nome do tipo na Consulta de Busca Flexível, que são (!), (*) e (^). O código relacionado pode ser encontrado em ParsedType.class (pacote: de.hybris.platform.persistence.flexiblesearch, método: public static String[] splitTypeExpression(String expr)).

Nesse método, esses caracteres estão relacionados com as seguintes strings

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

(^) : "deploymenttypes"

Você pode encontrar a explicação detalhada para o caractere (!) (correspondente à palavra-chave "exact") em https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/2011/en-US/b3c53d29850c47faa977f0cda707...

E o código em FromClause.class tem uma chamada ao construtor para essas correspondências da seguinte forma:

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

noSubtypes é verdadeiro quando se usa "exact"

disableTypeChecks é verdadeiro quando se usa "alltypes"

excludeSubtypesWithOwnDeployment é verdadeiro quando se usa "deploymenttypes"

Isso parece estar dizendo algo, mas é melhor para entender os casos com um exemplo.

Por exemplo, usarei AbstractCoupon da extensão couponservices e CustomerCoupon da extensão customercouponservices que estende AbstractCoupon.

Ambos os tipos têm suas próprias tabelas de implementação.

Quando buscamos sem nenhum deles

SELECT {PK} FROM {AbstractCoupon AS c}

Será traduzido da seguinte forma

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 substituídos: [8796136538194, 8796136505426, 8796136472658, 8796136603730]

Como CustomerCoupon estende AbstractCoupon, é traduzido como uma consulta de UNION.

Se usarmos (!) na consulta

SELECT {PK} FROM {AbstractCoupon! AS c}

Será traduzido da seguinte forma

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?