dljd_052_hibernate_单表查询_投影查询
一、投影查询
package edu.aeon.hibernate.test; import java.util.List; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import edu.aeon.aeonutils.hibernate.getsessionutil.GetSessionUtil; import edu.aeon.beans.Student; /** * [说明]:投影查询:只查询名字和年龄这两个字段 * 必须要有相应的构造器 * @author aeon * */ public class TestQuery { @Test public void testQueryRecordCount() { Session session=null; Transaction transaction=null; try { session = GetSessionUtil.getSession(); transaction=session.getTransaction(); transaction.begin(); //这里的count(*)相当于count(id) String sql = "select new Student(stuName,stuAge) from Student"; List<Student> userList = session.createQuery(sql).list(); for (Student stu : userList) { System.out.println(stu); } session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); //事物的回滚操作 transaction.rollback(); } } }
数据库信息截图:
执行结果截图:
只查出来了用户名和年龄两个字段吧!其它值都是默认显示值,因为我在Student类里面重写了equals方法,所以也显示出来了
这里必须要注意、你查询那些字段、必须要有这些字段的相应构造器!比如上面就必须要有 public Student(String stuName,int stuAge){}构造器。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步