2017-09-15 8 views
0

RideRide Locationの2つのテーブルがあります。Javaの再生エイビッドファインダーがクエリよりも大きいデータを返す

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

あなたは単に文字列として日付を扱うだけで、望む結果は得られません。文字列を日付に変換するか、タイムスタンプを比較することもできます(データベースに格納する方法によって異なります)。

関連する問題