Spring Date jpa 获取最新一条数据的实例代码

 更新时间:2020年10月07日 09:59:06   作者:Cobraes  
这篇文章主要介绍了Spring Date jpa 获取最新一条数据的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

#Repository

import test.demo.domain.entity.TestEntity;
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
import org.springframework.stereotype.Repository;

@Repository
public interface TestEntityRepository extends JpaRepositoryImplementation<TestEntity,Integer> {
}

#Service

import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;

@Validated
public interface TestService {
  /**
   * 获取账号最新的一个数据(指单个字段,例如最新时间,最新年龄等)
   * @param username
   * @return
   */
  String findLastage(@NotBlank String username);
}

#ServiceImpl

import test.demo.domain.entity.TestEntity;
import test.demo.repository.TestEntityRepository;
import test.demo.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class TestServiceImpl implements TestService {
  @Autowired
  private TestEntityRepository testEntityRepository;

  @Override
  public String findLastAge(String username) {
    Sort createTime = new Sort(Sort.Direction.DESC, "createTime");
    PageRequest of = PageRequest.of(0, 1, createTime);
    List<TestEntity> testEntities= testEntityRepository.findAll(((root, criteriaQuery, criteriaBuilder) -> criteriaBuilder.and(
        criteriaBuilder.equal(root.get("age"), age),
        criteriaBuilder.lessThan(root.get("expiredTime"), LocalDateTime.now())
    )));
    if (testEntities.isEmpty()){
      return null;
    }
    String age = TestEntities.get(0).getCode();
    return age;
  }
}

Entity这里就不写了,很普通,只说重点!

看下官方文档的解释:

补充知识:【spring data jpa】根据一个时间字段 查询 时间段的处理方法

处理方法 包含结束时间00.00.00

    Date createDate = boxCodeLog.getCreateDate();
        if (createDate != null){
          LocalDate localDate=createDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
          localDate = localDate.plusDays(1);
          Date endDate = java.sql.Date.valueOf(localDate);
          predicates.add(cb.between(root.get("createDate"),createDate,endDate));
        }

包含结束时间 23.59.59

    Date createDate = receipt.getCreateDate();
        if (createDate != null){
          LocalDate localDate=createDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
          localDate = localDate.plusDays(1);
          Date endDate = new Date(java.sql.Date.valueOf(localDate).getTime()-1L);
          predicates.add(cb.between(root.get("createDate"),createDate,endDate));
        }

以上这篇Spring Date jpa 获取最新一条数据的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java转换流(InputStreamReader/OutputStreamWriter)的使用

    Java转换流(InputStreamReader/OutputStreamWriter)的使用

    本文主要介绍了Java转换流(InputStreamReader/OutputStreamWriter)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Spring Boot配置动态更新问题

    Spring Boot配置动态更新问题

    这篇文章主要介绍了Spring Boot配置动态更新问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • springboot整合RabbitMQ 中的 TTL实例代码

    springboot整合RabbitMQ 中的 TTL实例代码

    TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大存活时间,单位是毫秒,这篇文章主要介绍了springboot整合RabbitMQ 中的 TTL,需要的朋友可以参考下
    2022-09-09
  • 详解mybatis-plus的 mapper.xml 路径配置的坑

    详解mybatis-plus的 mapper.xml 路径配置的坑

    这篇文章主要介绍了详解mybatis-plus的 mapper.xml 路径配置的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Spring Boot定时任务单线程多线程实现代码解析

    Spring Boot定时任务单线程多线程实现代码解析

    这篇文章主要介绍了Spring Boot定时任务单线程多线程实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot注册第三方Bean的方法总结

    SpringBoot注册第三方Bean的方法总结

    众所周知,SpringBoot默认会扫描启动类所在的包及其子包,一般我们都是在需要的类上通过注解的方式去将Bean注册交给IOC进行管理,但是注册第三方Bean的方案却不支持,所以本文给大家介绍了SpringBoot注册第三方Bean的方法,需要的朋友可以参考下
    2024-01-01
  • java反射如何获取方法属性和方法调用

    java反射如何获取方法属性和方法调用

    这篇文章主要介绍了java反射如何获取方法属性和方法调用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MyBatis特殊SQL的执行实例代码

    MyBatis特殊SQL的执行实例代码

    这篇文章主要给大家介绍了关于MyBatis特殊SQL执行的相关资料,文中通过实例代码和图文介绍的非常详细,对大家学习或者使用MyBatis具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01
  • SpringCache轻松启用Redis缓存的全过程

    SpringCache轻松启用Redis缓存的全过程

    Spring Cache是Spring提供的一种缓存抽象机制,旨在通过简化缓存操作来提高系统性能和响应速度,本文将给大家详细介绍SpringCache如何轻松启用Redis缓存,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-07-07
  • URLConnection发送HTTP请求的方法_动力节点Java学院整理

    URLConnection发送HTTP请求的方法_动力节点Java学院整理

    这篇文章主要介绍了URLConnection发送HTTP请求的方法,主要介绍了如何通过Java(模拟浏览器)发送HTTP请求,有兴趣的可以了解一下
    2017-07-07

最新评论