2017-09-15 17 views
0

RideRide Location이라는 테이블이 2 개 있습니다.Java 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

문자열을 날짜로 처리하기 만하면 원하는 결과를 얻을 수 없습니다. 문자열을 날짜로 변환하거나 타임 스탬프를 비교할 수도 있습니다 (데이터베이스에 저장하는 방법에 따라 다름).