我已经在 hibernate 中执行了带有where条件的选择查询。它返回列表中的值,其中还包含条件字段。我不需要列表中的条件字段。我怎样才能删除它。
我使用的查询:
select cityname,cityid from citymaster where stateid ='2';
它返回列表中的城市名称、城市ID、州ID。但我需要城市名称,城市ID
hibernate :
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 中 - 数组中的城市名称、城市 ID、州 ID。但我需要城市名称,城市ID。
最佳答案
我真的怀疑这个查询是否检索到了stateid。我已经使用 Hibernate 执行了很多类似的查询,它们只返回 select 子句中的列。
当然,如果您的 Citymaster
类具有 stateid
属性,它不会仅仅因为您没有查询它就从类中神奇地消失。所有返回的实例都在此属性中具有默认值(您在 Citymaster
的无参数构造函数中设置的值,如果您未在构造函数中设置任何特定值,则为 0 或 null ,取决于 stateid
字段的类型)。
如果您想确定,只需删除 query.setResultTransformer 调用,然后检查列表的内容即可。它应该包含包含两个元素的 Object[]
实例。
关于java - Hibernate - 从 hibernate setter(POJO) 类中删除 where 条件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645288/