Нужно запросить и вернуть объект из hashMap - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть объект в Spring, который имеет первичный ключ Timestamp и HashMap со значениями String, Double.

Моя цель - выполнить запрос с использованием метки времени и вернуть объект с этой меткой времени вместе со значениями карты.

Я пробовал что-то вроде:

@Query("select s from Measurement s join s.map m where ?1 in (VALUE(m))")
Measurement findByTimestamp(ZonedDateTime timestamp);

Организация:

@Entity
@Table(name="measurement")
@EnableAutoConfiguration
public class Measurement {


@Id
@JsonProperty(value="timestamp") @NotNull
private ZonedDateTime timestamp;

@JsonAnySetter
@ElementCollection
private Map<String, Double> metrics = new HashMap<>();
@ElementCollection
private Map<String, Double> metricsView;

public ZonedDateTime getTimestamp() {
  return timestamp;
}

Repository
@Repository
public interface MeasurementRepository extends JpaRepository<Measurement, Long> {

@Query("select s from Measurement s join s.map m where ?1 in (VALUE(m))")
Measurement findByTimestamp(ZonedDateTime timestamp);
}

Ожидается что-то вроде:

{
  "dewPoint": 17.1,
  "precipitation": 0,
  "temperature": 27.5,
  "timestamp": "2015-09-01T16:20:00.000Z"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...