我想用删除查询实现存储库。
@Repository
public interface LogRepository extends JpaRepository<Log, Integer>, JpaSpecificationExecutor<Log> {
@Modifying
@Query("delete from " + Log.class.getName() + " r where r.createdAt <= ?1")
int deleteByCreatedAt(LocalDateTime createdAt);
}
但是我收到错误The value for annotation attribute Query.value must be a constant expression
是否有实现此目的的方法?
答案 0 :(得分:2)
查询"delete from " + Log.class.getName() + " r where r.createdAt <= ?1"
的确不是恒定的,因为它将随着Log
类的变化而变化。但是,为什么要保持这种动态?不像您会经常更改数据库中的表名。只需静态定义它,您就可以开始使用。