Сопоставление поля с пользовательским запросом в OpenJPA - PullRequest
0 голосов
/ 27 мая 2011

У меня есть класс, Местоположение.Местоположение содержит Список координат, которые определяют его границу.

@Entity
@Table(name="LOCATION")
public class Location implements Serializable {

   private int id;
   private List<Coordinates> coordinateList;

   // setters and getters w/ mapping annotations

}

Координатный список сопоставляется @OneToMany с таблицей, содержащей координаты.

Я хотел бы добавить четыре поля(или Карта) в класс Location:

  • maxLat (максимальная широта)
  • minLat (минимальная широта)
  • maxLng (и т. д.)
  • minLng

Можно ли пометить эти поля пользовательским запросом для их заполнения?то есть

@CustomQueryOrSomething("select max(lat) from Coordinates C where C.location.id = " this.id)
public getMaxLat() {}

Джейсон

1 Ответ

2 голосов
/ 28 мая 2011

Чтобы ответить на ваш вопрос, нет, я не думаю, что есть способ заполнить одно поле сущности конкретным запросом.Вы можете использовать select для создания специального класса Range / Entity / Embeddable для заданного местоположения.

SELECT NEW com.bla.Range(max(lat), min(lat), max(long), min(long)) Coordinates C where C.location.id = :loc_id
...