我执行了带有休眠条件的select查询。它返回列表中的值,其中还包含where条件字段。我不需要列表中的where条件字段。我该如何删除它。

我使用的查询:

select cityname,cityid from citymaster where stateid ='2';


它在列表中返回cityname,cityid,stateid。但我需要cityname,cityid

休眠:

 Query query = session.createQuery("select cityname,cityid from Citymaster where stateid ='2'");
        query.setResultTransformer(Transformers.aliasToBean(Citymaster.class));
        List cityMasterList = query.list();
        Citymaster[] cma = cityMasterList.toArray();


在cma中-数组中的cityname,cityid,stateid。但是我需要cityname,cityid。

最佳答案

我真的怀疑此查询是否检索到了stateid。我已经使用Hibernate执行了很多类似的查询,它们只是返回select子句中的列。

当然,如果您的Citymaster类具有stateid属性,它不会仅仅因为您没有查询就神奇地从该类中消失。所有返回的实例将在此属性中具有默认值(在Citymaster的无参数构造函数中设置的默认值;如果未在构造函数中设置任何特定值,则返回0或null,具体取决于类型) stateid字段)。

如果要确保,只需删除query.setResultTransformer调用,然后检查列表的内容即可。它应该包含包含两个元素的Object[]实例。

10-01 23:59