2016-11-17 3 views
0

Я использую Spring boot JPA, и я хочу только возвращать значения, где идентификатор состояния не равен нулю. Каков наилучший способ запроса?Spring Boot JPA Query for not null

Домен

@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); 
} 

апи

@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); 

Я понимаю, что я мог цикл через возвращенные страницы и искать нули для удаления, но я бы предпочел, чтобы запрос просто возвращал значения, которые не равны нулю. Я не уверен, что лучший способ запросить значение null для идентификатора состояния объекта.

+0

Принимали ли вы время, чтобы прочитать [справочное руководство] (http://docs.spring.io/ spring-data/jpa/docs/current/reference/html/# jpa.query-methods.query-creation) например * таблица 4 *, которая объясняет ключевые слова ... –

ответ

6

Вы можете сделать это легко в интерфейсе

public interface EntityRepository extends CrudRepository<Batch, String> { 
    Iterable<Entity> findByStatusIdNotNull(); 
} 

См the docs больше вариантов

Смежные вопросы