我正在使用一个实体类,它有4个列,因此我的数据库也只有4个列。但是在编写HQL时,我使用了自定义SQL查询,生成了5个列。距离字段是动态生成的。
@Entity
public class Entity {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name;
private String latitude;
private String longitude;
@Transient
private double distance;
}
现在,执行查询时,可以按照以下格式进行 -
String q= "Select id, name, latitude, longitude, (latitude - 1) as distance from Entity";
SQLQuery query = s.createSQLQuery(q);
query.addEntity(Entity.class);
List<Entity> results = query.list();
所有其他列都被映射到实体对象,但我的距离字段未被映射。我将距离标注为Transient,因为我不想在数据库中保存该列,但是由于该字段是Transient,它也被忽略了在HQL实体对象中。 请帮我解决这个问题。应该如何处理?