目前在我们的数据库中,我们有两个字段:location_lat 和 location_lng。在 Java 中,我们将这两个字段映射为单独的浮点变量。在这种情况下,是否可以将这两个单独的浮点字段映射到一个对象(例如 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;
沿着这些路线的东西
最佳答案
当然。您正在寻找的是 @Embeddable
和 @Embedded
。
首先,在 LatLng
类上注释 @Embeddable
:
@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;
关于java - 有没有办法将 2 个数据库字段映射到 JPA 中的自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56451765/