J'utilise des JPA à démarrage par ressort et je souhaite uniquement renvoyer des valeurs dont l'ID d'état n'est pas nul. Quelle est la meilleure façon d'interroger cela?
Domaine
@ManyToOne
@JoinColumn(name = "entity_status_id")
private entityStatusLookup entityStatusLookup;
EntityController
public interface EntityRepository extends CrudRepository<Batch, String> {
public Page<Entity> findByUploadUserOrderByUploadDateDesc(String userId, Pageable page);
public Entity findByEntityId(String entityId);
}
api
@RequestMapping(value="/entity/user", method=RequestMethod.GET)
public HttpEntity<PagedResources<Entity>> getEntityByUser(Pageable page, PagedResourcesAssembler assembler) {
String user = SecurityContextHolder.getContext().getAuthentication().getName();
Page<Enity> entityItems = entityRepository.findByUploadUserOrderByUploadDateDesc(user, page);
return new ResponseEntity<>(assembler.toResource(entityItems), HttpStatus.OK);
}
Je me rends compte que je pourrais parcourir les pages retournées et rechercher les valeurs nulles à supprimer, mais je préfère que la requête renvoie simplement des valeurs qui ne sont pas nulles. Je ne sais pas quelle est la meilleure façon de rechercher non nul sur l'ID d'état de l'entité.
Vous pouvez le faire facilement dans votre interface
public interface EntityRepository extends CrudRepository<Batch, String> {
Iterable<Entity> findByStatusIdNotNull();
}
Voir la documentation pour plus d'options