jpa和hibernate将时间戳与特定天数进行比较

sy5wg1nm  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(101)

我想删除一些行后,一些天在jpa。

@Repository
public interface JpaTableRepository extends JpaRepository<TableEntity, String>
{
   @Query("DELETE FROM TABLE t WHERE lastChange > :numberOfDays")
   void delete(@Param("numberOfDays") int numberOfDays);
}

字符串
numberOfDays可以是10天。numberOfDays是一个int,lastChange是一个TimeStamp(日期时间)。

@Entity(name = "Table")
public class TableEntity
{
   @Id
   private String id;
   @UpdateTimestamp
   private Timestamp lastChange;
}

c9x0cxw0

c9x0cxw01#

日期操作在JPA中受到限制,但您可以使用Java方法。
服务内容:

int numberOfDays = 10;
LocalDateTime dateTimeMinusTenDays = LocalDateTime.now().minusDays(numberOfDays);

repository.delete(dateTimeMinusTenDays);

字符串
资料档案库:

@Query("DELETE FROM TABLE t WHERE lastChange > :startingLimitDateTime")
void delete(@Param("startingLimitDateTime") LocalDateTime startingLimitDateTime);


(It需要将lastChange类型更改为java.time.LocalDateTime

相关问题