es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El método findFirst no funciona con 3 filtros en Prisma.

Estoy teniendo este problema cuando quiero comprobar si tengo al menos un registro con los parámetros. Con 2 filtros funciona bien, pero con 3 no está funcionando.

await prismaClient.t_endereco
                .findFirst({
                    where: {
                        logradouro, (string)
                        bairro, (string)
                        numero, (number)
                    },
                })

La condición para actualizar el registro es que no haya otro idéntico.

Intenté utilizar AND también:

await prismaClient.t_endereco
                .findFirst({
                    where: {
                        AND:[
                              {logradouro}, 
                              {bairro}, 
                              {numero},
                            ]
                    },
                })

El mismo problema persiste.

¿Alguien puede ayudarme con esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás tratando de encontrar el primer registro que coincida con la cláusula WHERE dada, la cual incluye tres parámetros: logradouro, bairro y numero. El problema es que cuando pasas los tres parámetros, la consulta no funciona como se espera.

    Una opción que puedes intentar es usar el operador OR en lugar del operador AND. Esto devolverá el primer registro que cumpla con cualquiera de las condiciones:

    await prismaClient.t_endereco.findFirst({
      where: {
        OR: [
          { logradouro },
          { bairro },
          { numero },
        ],
      },
    });
    

    Alternativamente, puedes intentar usar la cláusula WHERE anidada para especificar las condiciones para cada parámetro:

    await prismaClient.t_endereco.findFirst({
      where: {
        logradouro: { equals: logradouro },
        bairro: { equals: bairro },
        numero: { equals: numero },
      },
    });
    

    Al utilizar el operador equals con cada parámetro, puedes asegurarte de que la consulta devuelva únicamente el registro que cumple con las tres condiciones.

    Espero que esto te ayude. Déjame saber si tienes más preguntas.

Comments are closed.