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

    科技2024-10-15  28

    #Repository

    1 2 3 4 5 6 7 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

    1 2 3 4 5 6 7 8 9 10 11 12 import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotBlank;   @Validated public interface TestService {   /**    * 获取账号最新的一个数据(指单个字段,例如最新时间,最新年龄等)    * @param username    * @return    */   String findLastage(@NotBlank String username); } #ServiceImpl

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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

    1 2 3 4 5 6 7 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

    1 2 3 4 5 6 7 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 获取最新一条数据的实例代码就是小编分享给大家的全部内容了

    Processed: 0.011, SQL: 8