Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

426
Visualizações
Cómo filtrar ciertos registros para todas las operaciones de la base de datos en Spring Boot

Estoy tratando de crear una API para recuperar registros de una base de datos con Spring Boot Data JDBC.

Digamos que tengo la siguiente entidad:

 record Customer(@Id Long id, String name) {}

y el siguiente repositorio:

 public interface CustomerRepository extends CrudRepository<Customer, Long> { }

Luego customerRepository.findAll() devuelve ordenadamente una List<Customer> que contiene todos los clientes, y repository.findById(23) encuentra con éxito al cliente con id #23, siempre que dicho cliente realmente exista.

Ahora la tabla de la base de datos subyacente tiene una columna adicional isDisabled , que contiene 0 o 1 . Quiero que mi API excluya todos los registros en los que el cliente esté deshabilitado.

Podría crear consultas en las que excluya manualmente esos registros, así:

 public interface CustomerRepository extends CrudRepository<Customer, Long> { @Query(""" SELECT id, name FROM Customers WHERE id = :id AND isDisabled = 0 """) @Override public Optional<Customer> findById(@Param("id") String id); }

Esto funciona, pero el problema es que tengo que hacer esto para todas las consultas de recuperación de bases de datos, incluidas findAll , findByName , etc.

¿Hay alguna manera de filtrar de alguna manera estos registros para todas las consultas de recuperación a la vez?

Por ejemplo, supongamos que tenemos la siguiente tabla:

identificación nombre está desactivado
1 Alicia 0
2 Bretaña 1
3 carolino 0
4 dakota 0

entonces findAll() devolvería

 [ Customer(1, Alice), Customer(3, Caroline), Customer(4, Dakota) ]

Del mismo modo, findById(2) devolvería un Optional vacío.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Parece que está tratando de implementar un tipo de funcionalidad de 'eliminación temporal'. Puede agregar la siguiente anotación a su entidad que hará lo que está pidiendo:

 @Where(clause = "isDisabled=0")

Consulte este enlace para obtener más información sobre la eliminación temporal.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda