按日期和状态SpringBoot的JPA查询表

时间:2018-08-12 19:26:13

标签: java spring-boot spring-data-jpa

我想从两个表的预订表和路线表中提取数据。 Bookings表包含一个外键route_id。我想做的是从预订表中获取假脱机信息,但还要根据外键(即路线表上的主键)从路线表中获取出发时间和出发日期。

我尝试了以下方法:

@Entity
public class bookings {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Nullable
private String email;

private String amount;

private String phoneId;

private Timestamp dateCreated;

private int state;
/* Bokkings state will have 3 states 1 => pending, 2 => booked and 3 => used*/

@ManyToOne
private routes routes;
}

路线实体:

@Entity
public class routes {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@ManyToOne
private busStations busStations;

private String destination;

private String price;

private String departureTime; // So same routes but different depature times

private Date departureDate; // So same routes but different depature dates

private Timestamp dateCreated;

@Nullable
private String dateModified;
}

我在Crud Repo界面中输入了以下内容

    public interface bookingsRepository extends CrudRepository<bookings, 
Integer> {

    List<bookings> findByRoutesDepartureDateAndState(Date date, int state);
}

我遇到的问题是我无法使用在Crud接口中编写的查询从表中提取值。我知道查询是错误的,但我不知道如何解决。

1 个答案:

答案 0 :(得分:0)

我认为您可以将接口与findByStateAndRoutesDepartureDate(int state,Date离开日期)方法名称一起使用... 无论如何,我认为使用JPA规范是实现这种查询的更好方法。