web-dev-qa-db-fra.com

Spring Boot JPA Query for not null

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é.

9
Bhetzie

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

29
chris p bacon