2017-09-15 1 views
0

Ich habe 2 Tabellen mit den Namen Ride und Ride Location.Java play Ebean Finder gibt falsche Daten für größer als Abfrage

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; 
} 

Ich versuche, alle Fahrten zu holen, das ist rideDate größer als oder gleich einem bestimmten Zeitpunkt und ' locationName 'entspricht dem angegebenen Standort.

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

Dies gibt Daten gleich `locationName 'zurück. Auch wenn das Datum kleiner ist als das angegebene Datum, werden die Daten zurückgegeben. Wie kann ich das beheben?

+0

Wie sieht das Datenbankschema für 'RideLocation' aus? –

Antwort

1

Sie versuchen einfach, mit dem Datum als Zeichenfolge umzugehen, mit der Sie nicht das gewünschte Ergebnis erhalten. Versuchen Sie entweder, die Zeichenfolge in ein Datum zu konvertieren oder vergleichen Sie Zeitstempel (abhängig davon, wie Sie sie in Ihrer Datenbank speichern).

Verwandte Themen