【发布时间】:2014-04-02 10:02:40
【问题描述】:
我必须阅读 hibernate 中的一些特定列。我写过这样的方法
Branch getBranch(long branchId)
{
String query = "select distinct bran.branch.branchId,bran.branch.branchName from Location bran where bran.branch.branchId =:branchId";
Session session = getSession();
session.beginTransaction();
Query buildQuery = getSession().createQuery(query).setParameter("branchId", branchId);
List<Object[]> countryList = buildQuery.list();
Branch branch = null;
for(Object[] obj : countryList)
{
branch = new Branch((Long)obj[0] , (String)obj[1]);
}
session.close();
return branch;
}
但在这里我必须手动构造我不想要的对象。我想以对象形式阅读结果,我不想手动构建对象。我的实体是这样的
public final class Location implements Comparable<Location>{
@Id
@Column(name = Tables.LOCATION.LOCATION_ID, nullable = false, precision = 15, scale = 0, updatable = false, insertable = false)
private long locationId;
@Column(name = Tables.LOCATION.LOCATION_NAME, length = 60, updatable = false, insertable = false)
private String locationName;
@Embedded
private Country country;
@Embedded
private Branch branch;
分支不映射到实体,但它是可嵌入的。我想以 DTO 的形式读取数据,所以我已经完成了 ResultTransformer 类,但它只适用于 sqlQuery 而不是 HQL(如果我错了,请纠正我)。我无法更改我的查询。请帮助我
【问题讨论】:
标签: hibernate