目前,在我们的数据库中,我们有两个字段:location_lat和location_lng。在Java中,我们会将这两个字段映射为单独的float变量。在这种情况下,可以将这两个单独的float字段映射到一个对象(例如LatLng对象)中以进行GET,PUT等操作...
通常,这两个字段如下所示:
@Column(name = "location_lat")
private float lat;
@Column(name = "location_lng")
private float lng;
但是最好有一些类似的东西
@Column(name = "lat") AND @Column(name = "lng")
private LatLng location;
沿线的事物
答案 0 :(得分:6)
好的。您正在寻找的是@Embeddable
和@Embedded
。
首先,在@Embeddable
类上注释LatLng
:
@Embeddable
public class LatLng {
@Column(name = "location_lat")
private float lat;
@Column(name = "location_lng")
private float lng;
}
要使用它:
@Embedded
private LatLng lat;
默认情况下,它将映射到@Embeddable
中定义的列。覆盖它们以映射到其他列。您可以使用@AttributeOverrides
:
@Embedded
@AttributeOverrides({
@AttributeOverride(name="lat", column=@Column(name="LAT_COLUMN_XXX")),
@AttributeOverride(name="lng", column=@Column(name="LNG_COLUMN_YYY"))
})
private LatLng lat;