我有一个案例,我有一个表格,可以在两列中存储地理位置,'纬度'和经度'。当我将结果集映射到Java对象时,我想将这两列组合在一起并将它们作为嵌套对象返回,但是这个嵌套对象不是与另一个表的某种关联(通过外键)。
所以,想象一下这个问题:
SELECT id, name, latitude, longitude
FROM places
WHERE id = <some_id>
而且,我想将它 - 理想情况下在我的XML文件中使用resultMap - 映射到:
public class Place {
private Long id;
private String name;
private GeoPoint point;
public Place(Long id, String name, GeoPoint point) {
this.id = id;
this.name = name;
this.point = point;
}
...
}
public class GeoPoint {
private BigDecimal latitude;
private BigDecimal longitude;
public Place(BigDecimal latitude, BigDecimal longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
...
}
从我读过的文档来看,目前尚不清楚这是否真的可以在MyBatis resultMap中实现。关于嵌套对象的唯一讨论是,这些对象是从作为连接的一部分返回到另一个表(关联或集合)的列形成的 - 即似乎需要ID。
就我而言,这些列只是形成一个嵌套的值对象,并且没有自己的唯一ID。
任何人都可以共享我的问题的解决方案,避免我不得不从我的映射器而不是完全构造的对象返回HashMap吗?