【发布时间】:2019-06-25 08:32:18
【问题描述】:
我正在使用 elasticsearch 6 和 Spring data jpa 进行查询。我写了这段代码:
- 持久对象:
@Document(indexName="vehicle_event", type="vehicle_event")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VehicleEventEL {
@Id
private String id;
private Long id_vehicle;
private Long id_road;
private Float latitude;
private Float longitude;
private String name_road;
private Date timestamp;
}
- 存储库:
@Component
public interface VehicleEventELRepository extends ElasticsearchRepository<VehicleEventEL, String> {
Page<VehicleEventEL> findByTimestampBetween(String startTime, String endTime, Pageable page);
Page<VehicleEventEL> findByTimestampBetweenAndId_vehicleEquals(String startTime, String endTime, Long id_vehicle, Pageable page);
}
findByTimestampBetween 方法有效。
findByTimestampBetweenAndId_vehicleEquals 方法不起作用并给我以下错误:
创建名为“vehicleEventELRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.springframework.data.mapping.PropertyReferenceException: No property vehicle found for type String!遍历路径:VehicleEventEL.id。
我没有找到解决办法。
【问题讨论】:
-
lombok 可能是这里的罪魁祸首..不确定...您可以尝试在您的班级中将名称命名为 vehicleId 而不是 id_vehicle
标签: java spring elasticsearch jpa repository