在OpenJPA中将字段映射到自定义查询

时间:2011-05-27 11:44:29

标签: openjpa

我有一个班级,位置。位置包含定义其边界的坐标列表。

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

   private int id;
   private List<Coordinates> coordinateList;

   // setters and getters w/ mapping annotations

}

coordinateList与@OneToMany映射到包含坐标的表。

我想要做的是在Location类中添加四个字段(或Map):

  • maxLat(最大纬度)
  • minLat(最低纬度)
  • maxLng(etc)
  • minLng

是否可以使用自定义查询对这些字段进行注释以填充它们?即。

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

杰森

1 个答案:

答案 0 :(得分:2)

要回答您的问题,我不认为有一种方法可以使用特定查询填充实体单个字段。您可以使用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