在Spring Boot @RepositoryRestResource的情况下测试BETWEEN关键字的REST Ap



我想获取之间的记录两个日期。我有POJO类和Repository接口如下。

Comapny.java

package com.example.TaskManagerApp.POJO;
import java.time.LocalDate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Company 
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int id;
String name;
String owner;
String contact;
LocalDate expDate;
int maxTasks;
int maxUsers;
public Company() {
}


public Company(String name, String owner, String contact, LocalDate expDate, int maxTasks, int maxUsers) {
this.name = name;
this.owner = owner;
this.contact = contact;
this.expDate = expDate;
this.maxTasks = maxTasks;
this.maxUsers = maxUsers;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public LocalDate getExpDate() {
return expDate;
}
public void setExpDate(LocalDate expDate) {
this.expDate = expDate;
}
public int getMaxTasks() {
return maxTasks;
}
public void setMaxTasks(int maxTasks) {
this.maxTasks = maxTasks;
}
public int getMaxUsers() {
return maxUsers;
}
public void setMaxUsers(int maxUsers) {
this.maxUsers = maxUsers;
}
}

CompanyRepository.java

package com.example.TaskManagerApp.repository;
import com.example.TaskManagerApp.POJO.Company;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource
public interface CompanyRepository extends JpaRepository<Company, Integer>{

}

现在我想测试api,

获取所有记录,我使用url如下,

GET : http://localhost:8080/companies

对于获得expDate为28-January-2021的所有记录,我使用url如下

GET : http://localhost:8080/companies?findByExpDate="2021-01-28"

这里的findByColumnName是Spring Boot自动提供的方法,官方文档中有说明:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation

同样有方法findByColumnNameBetween

如何在之间找到expDate两个日期吗?如何度过两次约会?

> GET :
> http://localhost:8080/companies?findByExpDateBetween="2021-01-01"......

如何在关键字之间指定第二个日期?

您应该使用/search/part。例如:

@RepositoryRestResource(collectionResourceRel = 
"events", path = "events")
public interface EventRepository extends PagingAndSortingRepository<Event, UUID> {
@Query(value = "select event from Event event where event.timestamp between :startTimestamp and :endTimestamp")
Collection<Event> findByTimestampBetween(@Param("startTimestamp") Long startTimestamp, @Param("endTimestamp") Long endTimestamp);
}

url部分为:http://localhost:8085/events/search/findByTimestampBetween?startTimestamp=0&endTimestamp=1634557076532

最新更新