DEV Community

Martin Ratinaud
Martin Ratinaud

Posted on

Prisma "null or does not exists"

I've been using Prisma on my latest project Karaoke Tools and as crazy as it may seem, I did not find any easy way (like a plugin) to handle soft delete behaviour.

So I had to tweak it myself manually and ending up in a case where

  • deletedAt can be null
  • deletedAt can NOT exist

This is because I'm using mongo and no default value for deletedAt.

This filtering in Prisma is not handled by default (like deletedAt: null so I had to do it with an OR request.


const items = await prisma.event.findMany({
    ...
    where: filters: {
      OR: [{ deletedAt: { isSet: false } }, { deletedAt: null }],
    ...
  });

Enter fullscreen mode Exit fullscreen mode

As it took me almost an hour to find this (chatGPT not being helpful), I wrote this article.

Cheers

Top comments (5)

Collapse
 
rfsilvagyn profile image
Raphael Felix

I need help convert command sql to prisma:

SELECT acctuniqueid,
username,
callingstationid,
framedipaddress
FROM tiger.RadiusAcct
WHERE username = ${element.login}
AND acctstoptime IS NULL
AND NOT EXISTS (
SELECT 1
FROM tiger.RadiusAcct subquery
WHERE subquery.username = ${element.login}
AND subquery.acctstoptime IS NOT NULL
AND subquery.radacctid > tiger.RadiusAcct.radacctid
)
ORDER BY radacctid DESC
LIMIT 1;

Collapse
 
konstantin_potyomkin_be72 profile image
Konstantin Potyomkin

I spent two days trying to solve this problem—documentation, AI, even prayers to the gods—nothing worked. Your article was super helpful and gave me the direction I needed to solve it! Thank you!

Collapse
 
gustawdaniel profile image
Daniel Gustaw

Concise and to the point. Thank you very much. Chat GPT was trying to convince me that prisma doesn't support it xD

Collapse
 
claudsondouglas profile image
Claudson

Thank you, the tears have already fallen from my face, thannnnkssssssss!!!!!!!

Collapse
 
mrispoli24 profile image
Mike Rispoli

I just lost a few hours to this myself I wish I found this sooner, much appreciated!