我试图实现一个JPA查询,以检查是否存在任何日期时间戳与当前年份月份匹配的记录。现在我正在获取所有记录并进行迭代以匹配。我知道这不是正确的实现,只是想知道是否有任何内置的JPA查询可用于此场景。
这是我到现在为止的实现
List<Product> productList= productRepository.findAll();
/*getMonthInt() and getYearInt() is the custom function which returns current
month and year. As date.getMonth() and date.getYear() is deprecated
*/
int currentMonth=getMonthInt(new Date());
int currentYear=getYearInt(new Date());
for(Product product:productList){
int fetchedMonth=getMonthInt(product.getShipmentDate()) ;
int fetchedYear=getYearInt(product.getShipmentDate());
if(fetchedMonth == currentMonth && fetchedYear == currentYear){
//record exist
}
else{
//do something else
}
}
您不需要获取所有记录。如果您试图通过比较时间戳的月份和年份来过滤记录,请遵循以下步骤
方法一:
方法2:
您的ProductRepository应该如下所示
public interface ProductRepository extends JpaRepository<Product, Integer> {
List<Product> findAllByShipmentDateBetween(Date startDate, Date endDate);
@Query("select p from Product p where year(p.shipmentDate) = ?1 and month(p.shipmentDate) = ?2")
List<Product> findAllByShipmentDate(Integer year, Integer month);
}
默认情况下,spring data jpa使用基于位置的参数绑定,如第二种查询方法所示,这可能会在维护期间导致问题。可以使用命名参数编写更多可维护的代码。例如
@Query("select p from Product p where year(p.shipmentDate) = :year and month(p.shipmentDate) = :month")
List<Product> findAllByShipmentDate(@Param("year") Integer year, @Param("month") Integer month);
问题内容: 我想向用户显示他是否喜欢图像。为此,我正在创建php代码 我无法对“标签”,“份额”,“评论”,“收藏夹”等事物执行此操作…许多没有比这更简单的了吗?喜欢说 问题答案: 确实有很多方法可以做到这一点,但是如果您打算使用更多的信息,那么用户是否喜欢使用select *是一个坏主意。原因是您要数据库返回该表中每一列的值。 假设它是一个小型数据库,可能不是问题,但是随着数据库变大,您将在数据
问题内容: 我是Laravel的新手。请原谅新手问题,但是如何查找记录是否存在? 我在这里可以查看是否有记录? 问题答案: 这取决于您之后是否要与用户一起使用,还是仅检查是否存在。 如果要使用用户对象(如果存在): 如果您只想检查 甚至更好
我是拉雷维尔的新手。请原谅这个新手的问题,但是我如何找到是否存在记录? 我可以在这里做什么来查看是否有记录?
在一个日期列中有一个表,在同一个日期的不同时间有这么多总计的条目,但我不担心时间。我需要找到某些日期所有总额,随着用户名。当我使用下面的查询。它显示语法错误 选择用户名,总额,从账单日期='2013-04-12' 在上面的查询日期是列名,请帮我。
我需要在JPA查询中传递这个参数。 我如何才能实现这一点,而不是为IS NULL&IS NOT NULL创建2个单独的查询。
问题内容: 我们有一个名为asamembr的表,其中有两个字段:cust_code和mbrcode。 还有另一个表成员消息与外键具有相同的字段,但是当我使用以下查询创建约束时: 我收到此错误: 您能否在表asamembr的两个字段cust_code和mbr_code上告诉您如何查询主键? 问题答案: 首先寻找PK的索引名称(pk_idx列) 其中的构造型: constrtype CHAR(1) C