Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

419
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!