Hibernate基础入门2
2024-09-18 02:22:54
HQL与Criteria
HQL(Hibernate Query Language)-官方推荐面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写);HQL中查的是对象而不是表,并且支持多态;HQL主要通过Query来操作,Query的创建方式:
Query q = session.createQuery(hql);
from Person
from User user where user.name=:name
from User user where user.name=:name and user.birthday < :birthday
Criteria是一种比HQL更面向对象的查询方式;Criteria的创建方式:
Criteria crit = session.createCriteria(DomainClass.class);
//简单属性条件如:
criteria.add(Restrictions.eq(propertyName, value)),
criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))
uniqueResult方法:当session.createQuery(“from xxx where cardid=‘xxx’”).uniqueResult();返回的结果只有一个对象时,可以使用uniqueResult()得到该对象。但是,如果结果是多条,使用该方法就会抛出异常。
对象状态
- 瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。
- 持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。
- 脱管/游离(detached):数据库中有数据与之对应,但当前没有session与之关联;脱管对象状态发生改变,hibernate不能检测到。
最新文章
- linux下epoll实现机制
- dedecms /member/reg_new.php SQL Injection Vul
- matlab求解相关系数
- csharp: get Web.Services WebMethod
- UEditor上传功能
- C++类的运用 和 三大函数
- 修改tomcat浏览器地址栏图标
- hdu1045
- Tomcat 连接池详解
- IO代码记忆
- Tomcat服务器简单测试jsp文件和html文件
- ajax和jquery使用技巧
- .NET开发微信小程序-Template模块开发
- JAVA获取客户端请求的当前网络ip地址(附:Nginx反向代理后获取客户端请求的真实IP)
- Vue.js 2.x:组件的定义和注册(详细的图文教程)
- 【Gym 100812C】Story of Princess (走完图所有边)
- Spark共享变量(广播变量、累加器)
- day14 迭代器和生成器
- 新建虚拟机_WIN7 32位系统
- es6模块 nodejs模块和 typescript模块