hibernate - 不使用 GET 或 LOAD 获取单个域类对象
问题描述
嗨,我对 Hibernate 有一点疑问。
假设我想从域类 obj 中获取特定的列。
喜欢
SELECT i.firstProperty, i.secondProperty FROM Users i WHERE i.id=10
这必须返回一个 obj而不是 list。我可以使用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
解决方案
您还没有显示完整的代码来获取结果,因此,出于一些基本考虑,我建议如下:
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
. 试一试。
推荐阅读
- python - Django先调用长路径后调用错误路径
- c# - AWS SES 或 SNS 用于监控 EC2 实例中程序的变量
- sql - 无法删除 PostgreSQL 角色。错误:`无法删除,因为某些对象依赖于它`
- r - 双人桌的所有组合
- javascript - 附加jQuery keypress事件获取keyCode
- java - R:无法安装 rJava;什么是 r-api-3.4?
- jquery - 将 span 元素添加到 Jquery datepicker 表格单元格
- python-3.x - Python 3.6,Telnet 连接错误
- visual-studio - VisualStudio 2017 - 调试器在使用 step into 时跳过代码
- javascript - (VUEJS) 如何在地址栏中加密我的路由参数?