【发布时间】:2023-03-29 16:51:01
【问题描述】:
我正在使用一个有 4 列的实体类,所以我的数据库也只有 4 列。但是在编写我的 HQL 时,我正在使用生成 5 列的自定义 SQL 查询。距离场是动态生成的。
@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();
所有其他列都映射到实体对象,但我的距离字段没有被映射。我将距离注释为瞬态,因为我不希望我的数据库中的列,但由于字段是瞬态的,它在 HQL 实体对象中也被忽略了。 请帮我解决一下这个。如何做到这一点?
【问题讨论】:
-
呃,经度,纬度为字符串。
-
@neilstockton 哈哈,所有这些都只是一个示例问题。这样你也会讨厌类名和公式:p
标签: java hibernate jpa hql transient