用户登录
用户注册

分享至

hibernate内置方法

  • 作者: 胆小瘾大脾气差
  • 来源: 51数据库
  • 2021-01-30
这些方法你可以在hibernate反向工程的时候,所选择的dao层里看看,这些都在dao层里,具体的你用用就知道了

1、delete(Object entity) 删除指定的持久化实例
在程序中一般先用
Assert.notNull和 Assert.isTrue断言entity是否为空 和
entity的id是否大于0若
否则事务回滚。再用get(Class entityClass,Serializable id,LockMode
lockMode)加锁查询出持久
化实例,一般用lockMode.update悲观锁,最后用delete(Object
entity)来删除此实例。

2、deleteAll(Collection
entities)
删除集合内全部持久化实例
entities必须为持久化实例,否则报数据库异常错误。

3、find(String
queryString)
根据HQL查询字符串来返回实例集合
find方法在执行时会先查找缓存,如果缓存找不到再查找数据库,如果再找不到就会返回null。

4、get(Class
entityClass,Serializable id)根据主键加载特定持久化实例
在程序中一般先用
Assert.isTrue断言id是否大于0,若大于0继续执行,若查到数据则返回实例,否则返回空
不同于load,load若有数据则返回实例,否则报出ObjectNotFoundEcception异常,相比来说get效率高些

5、save(Object
entity) 保存新的实例
在程序中一般先用
Assert.notNull断言实体是否为空,在进行保存。

6、saveOrUpdate(Object
entity)根据实例的状态选择保存或者是更新
此方法同时包含了save与update方法的功能,如果传入的参数是临时对象vo
没有id,就调用save方法;如果传
入的参数是游离对象有id,就调用update()方法;如果传入的参数是持久化对象po,就直接返回。

7、update(Object
entity) 更新实例的状态 实例必须为持久化状态
在程序中一般先用 Assert.notNull和
Assert.isTrue断言entity是否为空 和
entity的id是否大于0,
然后在更新实例,entity必须含有id否则不能更新。

8、Object
execute(hibetnateCallback action)是HibernateCallback接口类。

当dao中的方法不能满足程序需要时可以考虑用此方法。如:根据几个不同参数需要返回唯一实体时用uniqueResult()返回。
HibernateCallback里面定义了一个doInHibernate的方法,这个方法是可变的。如果要查找数据方法应该就
是:session.load()。删除数据就是session.delete().这样的话查询数据库的方法用execute方法。

9、bulkUpdate()通过语句直接增加、更新、删除实体

一般有bulkUpdate(String sqlString) 和 bulkUpdate(String
sqlString,Object[] object)两个
方法,返回增加,更新,或者删除的数量一般用于批量。
软件
前端设计
程序设计
Java相关