2017-09-15 98 views
0

我有两个表名为RideRide LocationJava play Ebean finder返回的错误数据大于查询

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'的数据。 即使它的日期少于给定日期,也会返回数据。我该如何解决这个问题?

+0

什么是数据库模式像'RideLocation'? –

回答

1

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