当前位置: 首页 > 知识库问答 >
问题:

通过Spring Boot JPA Postgresql H2执行间隔

姬俊远
2023-03-14

我正在尝试在Spring Boot中创建一个JPA存储库查询。

  • 我使用的是spring数据jpa 2.1.5、spring boot 2.1.3、postgresql驱动程序42.2.5、h2database 1.4.200、Java 1.8

我的条件是:

  • 我必须使用PostgreSQL进行生产,使用H2进行单元(集成)测试。
  • 我不应该使用本地查询(postgres x h2)。
  • 我需要从客户的表中获取客户记录
  • 但仅限于在当前日期前至少24小时注册的客户。
  • 所以我的意思是数据库日期。我不能使用Java将任何参数传递到查询中。

我的客户实体看起来像这样:

@Entity
@Table(name = "customer")
public class Customer {

   @Id
   @Column(name = "cust_no")
   private int custNo;

   @Temporal(TemporalType.TIMESTAMP)
   @Column(name = "registration_timestamp")
   private Date registrationTimeStamp;
}

我的客户存储库将类似于:

@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {

   @Query(value = "SELECT c FROM Customer c WHERE c.registrationTimeStamp <= SOMETHING")
   List<Customer> getCustomers24HoursAfterRegistration();

}

我真的不知道该放什么,那个地方指的是什么。我想我可以使用类似CURRENT\u TIMESTAMP的东西-指24小时。所有的例子都是关于nativeQuery的。或者从Java传递参数。我不能使用INTERVAL,因为Spring JPA不支持。

我不敢相信Spring JPA中没有这样一个简单的过程,它同时支持两个RDBMS(PostgreSql和H2)。我想问有什么方法可以做到这一点吗?

共有1个答案

齐威
2023-03-14

如果你不想你的本机查询那么你必须使用查询方法

你可以这样做

 List<User> findByCreatedAtGreaterThanEqual(Data createdAt);

更多信息,请参见(https://www.baeldung.com/spring-data-jpa-query-by-date, https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-方法)

 类似资料:
  • 问题内容: 我正在尝试使用Linux crontab执行python脚本。我想每10分钟运行一次此脚本。 我找到了很多解决方案,但都无济于事。例如:在/etc/cron.d中编辑anacron或使用。我将此行放在文件的末尾,但它没有任何改变。我需要重启任何服务吗? 我必须编辑哪个文件来配置它? 提前致谢 这是脚本。 问题答案: 只需使用并按照此处的教程操作即可。 请参阅第3点,以获取有关如何指定频

  • 问题内容: 我有一个CentOS 5.7 linux服务器,并使用php5.3.x。 在pfSense系统上,您可以使用php网页重新启动需要root权限的服务。 我正在尝试做类似的事情,我已经写了一些php代码来执行shell命令。例如,重新启动sshd服务: 我试图通过exec函数执行该命令,但是它需要root权限,但是我们拥有apache用户权限。 我遇到了一些解决方案: “以root用户运

  • 问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc

  • 问题内容: 我有一个数据集,其中包含对频率为2分钟的几周的观察。我想将时间间隔从2分钟增加到5分钟。问题在于,观察的频率并不总是相同的。我的意思是,从理论上讲,每10分钟应进行5次观察,但通常情况并非如此。请让我知道如何根据平均功能以及观察的时间和日期汇总观察。换句话说,基于每5分钟的汇总,而对于每5分钟的时间间隔,观察次数却不同。此外,我有时间戳格式的日期和时间。 示例数据: 预期成绩: 问题答

  • 问题内容: 我有一个外部程序Otter,该程序将一些文件名作为参数并创建了一个输出文件,也将其指定为参数。因此,例如,如果我的输入是“ proof.in”,并且我希望将输出放置在“ proof.out”文件中,则可以在终端中运行以下命令: “ proof.in”文件必须与水獭可执行文件位于同一文件中。 问题是我需要Java提供此功能,因此在我的Java代码中执行以下操作: 但是在此行之后,整个用户

  • 问题内容: 我有简单的搜寻器,可搜寻和搜寻页面。但是现在我有问题如何执行和解析该页面中的js链接。有谁知道如何解析和执行js页面吗? 例: some_url易于使用webhtmltoolktit进行解析 JAVASCRIPT:runmeat(1,7,0,2,7,9)是js链接,它随后重定向到some_url2页面,然后我需要对该页面进行爬网。但是问题是如何在C#中执行此javascript以获取s