【问题标题】:Java play Ebean finder returns wrong data for greater than queryJava play Ebean finder为大于查询返回错误数据
【发布时间】:2017-09-15 14:48:22
【问题描述】:

我有 2 个名为 RideRide Location 的表。

Ride.java

@Entity
public class Ride extends Model {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long rideId;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss z")
    private Date rideDate;

    @OneToMany(mappedBy = "ride", cascade = CascadeType.ALL)
    private List<RideLocation> rideLocations;
}

RideLocation.java

@Entity
public class RideLocation extends Model {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long rideLocationId;
    private String locationName;
    private float lat;
    private float lon;

    @JsonBackReference
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private Ride ride;
}

我正在尝试获取 rideDate 大于或等于给定日期且“locationName”等于给定位置的所有游乐设施。

List<RideLocation> list = Ebean.find(RideLocation.class).where().ge("ride.rideDate", "2017-09-13").and().like("locationName", "San Jose").findList();

这将返回等于 `locationName' 的数据。 即使日期小于给定日期,也会返回数据。我该如何解决这个问题?

【问题讨论】:

  • RideLocation 的数据库架构是什么样的?

标签: java playframework-2.0 ebean


【解决方案1】:

您只是试图将日期作为字符串处理,不会给您想要的结果。尝试将字符串转换为日期,或者您也可以比较时间戳(取决于您将其存储在数据库中的方式)。

【讨论】:

    猜你喜欢
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多