Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Spring Boot JPA+Postgresql+H2执行间隔_Java_Postgresql_Spring Boot_Jpa_H2 - Fatal编程技术网

Java 通过Spring Boot JPA+Postgresql+H2执行间隔

Java 通过Spring Boot JPA+Postgresql+H2执行间隔,java,postgresql,spring-boot,jpa,h2,Java,Postgresql,Spring Boot,Jpa,H2,我试图在SpringBoot中创建一个JPA存储库查询 我使用的是SpringDataJPA2.1.5、SpringBoot2.1.3、postgresql驱动程序42.2.5、h2database 1.4.200、Java1.8 我的条件是: 我必须使用PostgreSQL进行生产测试,使用H2进行单元集成测试。 我不应该使用本机查询postgres x h2。 我需要从客户表中获取客户记录 但仅限于在当前日期前至少24小时注册的客户。 所以我指的是DB约会。我不能使用Java将任何参数传递到

我试图在SpringBoot中创建一个JPA存储库查询

我使用的是SpringDataJPA2.1.5、SpringBoot2.1.3、postgresql驱动程序42.2.5、h2database 1.4.200、Java1.8 我的条件是:

我必须使用PostgreSQL进行生产测试,使用H2进行单元集成测试。 我不应该使用本机查询postgres x h2。 我需要从客户表中获取客户记录 但仅限于在当前日期前至少24小时注册的客户。 所以我指的是DB约会。我不能使用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();

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


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

如果你不想使用原生查询,那么你必须使用查询方法

你可以这样做

 List<User> findByCreatedAtGreaterThanEqual(Data createdAt);

更多信息,您可以看到,

我认为您可以使用日期字符串。最好的方法是在数据库中尝试查询或编写单元测试。