Spring Boot JPA 查询不为空

Posted

技术标签:

【中文标题】Spring Boot JPA 查询不为空【英文标题】:Spring Boot JPA Query for not null 【发布时间】:2017-04-01 06:02:17 【问题描述】:

我正在使用 Spring Boot JPA,我只想返回状态 ID 不为空的值。查询此问题的最佳方法是什么?

@ManyToOne
@JoinColumn(name = "entity_status_id")
private entityStatusLookup entityStatusLookup;

实体控制器

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

我意识到我可以遍历返回的页面并查找要删除的空值,但我宁愿让查询只返回非空值。我不确定在实体状态 id 上查询 not null 的最佳方法是什么。

【问题讨论】:

你有没有花时间阅读the reference guide,例如table 4,它解释了关键字... 【参考方案1】:

您可以在界面中轻松做到这一点

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

更多选项请见the docs

【讨论】:

你提供的链接很有用。

以上是关于Spring Boot JPA 查询不为空的主要内容,如果未能解决你的问题,请参考以下文章

JPA:仅当结果集不为空时才缓存查询

spring boot + spring data jpa

JPA OneToOne,外键在 Spring Boot 上为空

Spring Boot JPA 元模型不能为空!尝试运行 JUnit / 集成测试时

外键在一对多关系中始终为空 - Spring Boot Data with JPA

指定为非空的参数为空:无法更新 Spring Boot jpa 中的单个实体字段。导致指定为非空的参数为空