LZ在项目中需要处理这样一个业务,每天都有终端设备上传GPS位置信息到服务端,服务端要把GPS位置信息保存在本地,因为每天上传的GPS数据信息会有很多,
所以要把GPS数据按天分别存放在不同的表中,如2013年3月27日上传的GPS数据保存在Disa_GPS_20130327表中,而2013年3月28日上传的GPS数据保存在Disa_GPS_20130328表中,依次类推。这些表的数据结构完全一样,所以LZ想用一个实体去动态映射这些结构相同的表。在网上查了些资料,结果都是需要xml映射文件的,
而LZ用的是hibernate3.x的注解方式实现的映射,当时随便试了下,也没有调通(很惭愧,如果有研究注解方式可以实现的朋友,麻烦共享下,先在这里谢谢了)。所以,又另寻它法。后来在网上又找到了一个通过HQL的基础,SQLQuery实现的动态映射方法,经过LZ实验,终于调通。在此,与各位共享下。
【注】:DIsaGpsdata是实体类,里面要写注解或配置hbm.xml文件。
DisaGpsdata.java:
package com.supermap.earth.server.hibernate.disaster;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "DISA_GPSDATA", schema = "EARTH_DISASTER")
public class DisaGpsdata implements java.io.Serializable {
private String id;
private String temId;
private String earthId;
private String userId;
private Double lng;
private Double lat;
private Double secretLng;
private Double secretLat;
private Date gpsTime;
private Double gpsDir;
private Double gpsSpeed;
public DisaGpsdata() {
}
public DisaGpsdata(String id, String temId, Double lng, Double lat,
Double se