¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Creación de tipos PaymentTerm, PaymentTermsGroup y más: Solución al error de SQL al crear una instancia de PaymentTermsGroup

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

Hola,

Acabo de crear los siguientes 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>Descripción</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>

Sin embargo, cuando intento crear una instancia de PaymentTermsGroup con 2 PaymentTerms (no obtuve el error con 1 PaymentTerm), obtengo un extraño error 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 : El operando debe contener 1 columna(s) 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...

Se ha declarado PaymentTerm, pero no se extiende de ninguna clase. Cada tipo de ítem debe extenderse con una superclase.

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

No sé cómo se ve la consulta flexibleSearch actual, no lo dice en el registro. Creo que es generada por UniqueAttributesInterceptor, pero no he cambiado nada en ese interceptor.

Usar una relación en lugar de un tipo de colección es una buena sugerencia, de hecho, lo intentaré, gracias.

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

El problema es que estás intentando usar el operador = con una lista. item_t0.p_paymentterms = (?,?)

¿Cómo se ve tu consulta de flexibleSearch actualmente? Recomendaría (y creo que también lo hace Hybris) que no uses tipos de colección, sino relaciones en su lugar. Eso hará que las consultas sean mucho más simples. Y Vinay, hay un extends en la definición de los elementos. Aunque genericItem no siempre es el mejor, para elementos totalmente nuevos es una buena idea. GenricItem se extiende por defecto.

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?