Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询 方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
在HQL中,你可以直接From你的实体对象来进行查询:
Java代码
/**
* 简单使用
*/
@SuppressWarnings("unchecked")
public static void test1(){
Session session = HibernateSessionFactory.currentSession();
String hql = "from User u";
Query query = session.createQuery(hql);
List<User> user = query.list();
System.out.println("------------SQL执行完毕---------------");
for (User us : user) {
System.out.println(us.getName());
}
}
类的后面可以接别名
如果想单独查询某一列,可以这样使用:
Java代码
/**
* 查询某列
*/
@SuppressWarnings("unchecked")
public static void test2(){
Session session = HibernateSessionFactory.currentSession();
String hql = "select name from User u";
Query query = session.createQuery(hql);
List<String> user = query.list();
System.out.println("------------SQL执行完毕---------------");
for (String us : user) {
System.out.println(us);
}
}
如果想查询某几列的话,只是返回的内容不同了而已:
Java代码
/**
* 查询某几列
*/
@SuppressWarnings("unchecked")
public static void test3(){
Session session = HibernateSessionFactory.currentSession();
String hql = "select id,name from User u";
Query query = session.createQuery(hql);
List user = query.list();
System.out.println("------------SQL执行完毕---------------");
for(Object obj : user){
Object[] arrObj = (Object[])obj;
System.out.println(arrObj[0] + "/t-->/t" + arrObj[1]);
}
}
Java代码
/**
* 查询一条数据
*/
@SuppressWarnings("unchecked")
public static void test3(){
Session session = HibernateSessionFactory.currentSession();
String hql = " from User u";
List list=session.createQuery(hql).setString(0, id).list();
//User user =(User) query.uniqueResult(); //当确定返回的实例只有一个或者null时 用uniqueResult()方法
if (list.size()==1){
return (User)list.get(0);
}else{
return null;
}
}
Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题的更多相关文章
- Hibernate查询对象的方法浅析
Hibernate 查询对象是根据对象的id查询的,只要你有id (id唯一),则无论你是否其他字段与传过来的对象一致,都会查到该id在数据库对应的对象.若是在关联查询中,所关联表的id为空,即所查表 ...
- spring+hibernate实体类注解详解(非原创) + cascade属性取值
@Entity //继承策略.另一个类继承本类,那么本类里的属性应用到另一个类中 @Inheritance(strategy = InheritanceType.JOINED ) @Table(nam ...
- javascript中json对象json数组json字符串互转及取值
今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 var jsonString = '{"bar" ...
- [转]Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
原文地址:http://www.ablanxue.com/prone_3552_1.html 1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对 ...
- 关于Hibernate查询对象调用set方法自动同步到数据库解决方案
Hibernate的get和load方法查询出的实体都是持久化对象,拿到该对象后,如果你调用了该对象的set方法,如果再同一个事务里面,那么在事务递交的时候,Hibernate会把你设置的值自动更新到 ...
- hibernate左连接查询时在easyUI的dataGrid中有些行取值为空的解决办法
1 当使用left join左连连接,sql语句为 select t from SecondPage t left join t.rightNavbar n where 1=1 页面中出现了部分空行的 ...
- Cookie是以文本文件保存在客户端的,所以说cookie对象从本质而言是 字符串,所以取值时用字符串,或其数组
- 实现Django ORM admin view中model字段choices取值自动更新的一种方法
有两个表,一个是记录网站信息的site表,结构如下: CREATE TABLE `site` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `name` ) N ...
- Hibernate查询部分字段并封装到指定类中
Hibernate 使用查询部分/指定字段,有几种字现方式: 第一种方式是通过HQL语句实现,类似SQL,方法如下: String hql = "select id,name from Li ...
随机推荐
- <<杰克.韦尔奇自传>>
<<杰克.韦尔奇自传>> 这本书号称是管理学十大经典名著,也是HR老师推荐的一本书.花了几个月时间断断续续拜读了这本书. GE是伟大的公司,杰克韦尔奇是伟大的CEO,这都毋庸置 ...
- C语言学习笔记---好用的函数memcpy与memset
这个主要用于我个人的学习笔记,便于以后查询,顺便分享给大家. 想必在用C的时候难免会与数组,指针,内存这几样东西打交道,先以数组为例,例如有一个数组int a[5] = {1, 2, 3, 4, 5} ...
- 有关Zedgraph的功能扩展的笔记
1.坐标轴范围.刻度调整后需要加上下面的语句才能刷新: zedGraphControl1.AxisChange(); zedGraphControl1.Refresh(); 2.坐标范 ...
- python学习——练习题(6)
""" 题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21 ...
- leetcode566
public class Solution { public int[,] MatrixReshape(int[,] nums, int r, int c) { ); ); if (row * col ...
- 「小程序JAVA实战」小程序开发注册用户的接口(33)
转自:https://idig8.com/2018/08/30/xiaochengxujavashizhanxiaochengxukaifazhuceyonghudejiekou33/ 从用户注册接口 ...
- centos 和KVM安装
- 一致性哈希算法(consistent hashing)(转载)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...
- 常用sql语句备份
1.查看数据库中所有的存储过程 use [DataBase_Name] go SELECT * FROM sys.all_objects WHERE ([type] = 'P' OR [type] = ...
- think in avalon
1.不要设计,也不要通过DOM操作去改变你的页面 你用jQuery去设计一个页面,并让它动起来.这是因为jQuery就是让一切简单的事情变复杂的罪魁祸首. 但是用avalon,你必须从零开始去构思你的 ...