1
resposta

Erro M.ativo = 1

meu programa deu erro de compilação quando "m.ativo = 1", mudei pra true e funcionou. mas queria saber porque isso ocorreu?

ackage med.voll.api.domain.medico;

import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query;

import java.time.LocalDateTime;

public interface MedicoRepository extends JpaRepository<Medico, Long> {

Page<Medico> findAllByAtivoTrue(Pageable paginacao);

@Query("""
            select m from Medico m
            where
            m.ativo = true /* quando igual a 1*/ erro de compilação
            and
            m.especialidade = :especialidade
            and
            m.id not in(
                    select c.medico.id from Consulta c
                    where
                    c.data = :data
            )
            order by rand()
            limit 1
            """)
Medico escolherMedicoAleatorioLivreNaData(Especialidade especialidade, LocalDateTime data);

}

1 resposta

Oi!

Nas novas versões do Hibernate ele não aceita o valor 1, porque o atributo ativo é boolean.

Antes ele convertia 1 e 0 para true e false, mas agora não faz mais isso.

Bons estudos!