Avalados por :

Criação de tipos PaymentTerm, PaymentTermsGroup e mais: Solução para erro de SQL ao criar uma instância de PaymentTermsGroup

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

Olá,

Acabei de criar os seguintes tipos:

 <collectiontype elementtype="PaymentTerm" 
             code="PaymentTermList" autocreate="true" type="list" />
 <itemtype code="PaymentTerm" extends="GenericItem"
         autocreate="true" generate="true">
         <deployment table="PaymentTerms" typecode="22111" />
         <attributes>
             <attribute type="java.lang.String" qualifier="code">
                 <persistence type="property" />
                 <description>Código</description>
             </attribute>
             <attribute type="localized:java.lang.String" qualifier="description">
                 <persistence type="property" />
                 <description>Descrição</description>
             </attribute>
         </attributes>
 </itemtype>
 <itemtype code="PaymentTermsGroup" extends="UserGroup" autocreate="true"
         generate="true">
         <deployment table="paymenttermsgroups" typecode="22434" />
         <attributes>
             <attribute type="PaymentTermList" qualifier="paymentTerms">
                 <modifiers unique="true" optional="false" />
                 <persistence type="property" />
             </attribute>
             <attribute type="B2BUnit" qualifier="salesOffice">
                 <modifiers unique="true" optional="false" />
                 <persistence type="property" />
             </attribute>
         </attributes>
     </itemtype>

No entanto, ao tentar criar uma instância de PaymentTermsGroup com 2 PaymentTerms (não obtive erro com 1 PaymentTerm), recebo um erro estranho de SQL:

 INFO   | jvm 1    | main    | 2015/07/09 12:49:13.897 | Causado por: de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException: error de búsqueda SQL : O operando deve conter 1 coluna(s) na consulta = 'SELECT  item_t0.PK  FROM paymenttermsgroups item_t0 WHERE (( item_t0.uniqueid  = ? AND  item_t0.p_paymentterms  = (?,?) AND  item_t0.p_salesoffice  = ? )) AND (item_t0.TypePkString=? )', valores = [sbx_nl_pmt, PropertyValue:8796093306463, PropertyValue:8796093273695, PropertyValue:8796093939717, 8796136538194][HY-0]
 INFO   | jvm 1    |    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Foi declarado PaymentTerm, mas não estende de nenhuma classe. Cada tipo de item deve ser estendido por uma superclasse.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Não sei como a consulta flexibleSearch atual se parece, não está registrado. Acho que é gerada pelo UniqueAttributesInterceptor, mas não alterei nada nesse interceptor.

Usar um relacionamento em vez de um tipo de coleção é uma boa sugestão, de fato, vou tentar, obrigado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

O problema é que você está tentando usar o operador = com uma lista. item_t0.p_paymentterms = (?,?)

Como está sua consulta de flexibleSearch atualmente? Eu recomendaria (e acredito que também o faz o Hybris) que você não use tipos de coleção, mas sim relacionamentos no lugar. Isso tornará as consultas muito mais simples. E Vinay, há um extends na definição dos elementos. Embora genericItem nem sempre seja o melhor, para elementos totalmente novos é uma boa ideia. GenericItem é estendido por padrão.

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?