Pobranie miejsc na seans - skomplikowane query

0

Potrzebuję pobrać miejsca na seans w formie DTO (Spring Data JPA). Jedno pole - isFree zależy od tego czy na dane miejsce jest już zarezerwowany bilet.
Sala ma przypisane miejsca, seans sale a bilet seans i miejsce. Chat GPT podał coś takiego:

@Query("SELECT new com.cinema.tickets.application.queries.dto.SeatDto(s.rowNumber, s.number, " +
            "CASE WHEN (SELECT COUNT(t) FROM Ticket t WHERE t.seatId = s.id) > 0 THEN false ELSE true END) " +
            "FROM Seat s WHERE s.hallId = (SELECT sc.hallId FROM Screening sc WHERE sc.id = :screeningId)")

Da się to jakoś lepiej zrobić czy jestem skazany na tego potworka?

0
Nofenak napisał(a):

Chat GPT podał coś takiego:

Skoro Chat GPT jest taki super, to spytaj go czy można to jakoś krócej zapisać.

Nofenak napisał(a):

Da się to jakoś lepiej zrobić czy jestem skazany na tego potworka?

Z całą pewnością da się to krócej napisać, i to bez zagnieżdżonych query.

PS: Widzę że najwyższej jakości to query. Czyżby chat nie znał NOT?

THEN false ELSE true END

1 użytkowników online, w tym zalogowanych: 0, gości: 1