我对Hibernate有一点怀疑
假设我想从Domain类obj获取特定列。
像
SELECT i.firstProperty, i.secondProperty FROM Users i WHERE i.id=10
这必须返回单个obj 而不是列表。我可以使用 GET 或 LOAD 来执行此操作,但现在我不想要。还有其他办法吗。
我不能使用查询,但它有返回列表的方法,我认为 QBC 还有列表返回类型。那么有什么办法吗?
我的代码它正在成功生成查询,但在调用getProperty时显示为null。
Query query= null;
DTO dto= null;
SessionFactory factory= ht.getSessionFactory();
Session ses= factory.openSession();
query= ses.createQuery(get_Some_coloumn).setResultTransformer(new AliasToBeanResultTransformer(MobileBrands.class));
MobileBrands brands= (MobileBrands) query.uniqueResult();
System.out.println(brands.getId()+" "+brands.getName()+" "+brands.getPrice());
控制台
---------------
Hibernate:
select
mobilebran0_.BRAND_ID as col_0_0_,
mobilebran0_.NAME as col_1_0_,
mobilebran0_.PRICE as col_2_0_
from
MOBILE_BRANDS mobilebran0_
where
mobilebran0_.BRAND_ID=5
0 null 0
答案 0 :(得分:0)
您尚未显示获取结果的完整代码,因此,我建议将其作为基本注意事项:
SQLQuery qry = session.createQuery("SELECT i.firstProperty, i.secondProperty FROM Users i WHERE i.id=10")
.setResultTransformer(new AliasToBeanResultTransformer(Entity.class));
entity = qry.uniqueResult()
这会将SQL结果转换为Entity
。试试吧。