Hibernate session的方法全集
Hibernate Session的保存、删除及更新 详解版

一、Session的保存、删除及更新1.save()方法:将一个对象的属性取出放入PreparedStatement语句中,然后向数据库中插入n语句。
例://打开Session,开启事务Students students = new Students();students.setCardId(20080929);//设置学号session.save(students);System.out.println(students.getid());//提交事务,关闭Session2.update()方法:例://打开Session,开启事务students=(Students)session.get(Students.class,"1");students.setName("123");session.update(students);//提交事务,关闭session3.批量更新:在进行批量操作时,最好的方法是调用JDBC的API进行操作。
例:将所有学生的姓名前加上一个字符串“xiao”。
Connection conn = session.connection();PreparedStatement stmt = conn.prepareStatement("update students set sname='xiao'+sname");stmt.executeUpdate();4.saveOrUpdate()方法:与save方法,update方法用法相同。
只是处理的细节不同。
5.delete()方法:负责删除一个对象例://打开Session,开启事务students=(Students)session.get(Students.class,"1");session.delete(students);//提交事务,关闭Session二、通过主键ID取得数据对象1.get()方法:用立即加载的方式发送SQL语句,并得到已经初始化的对象。
NHibernate HQL 操作

NHibernate Session、Query及HQL我们总结一下在Session操作:1.获取记录Person person = (Person)session.Get(typeof(Person),1);2.保存记录session.Save(person);3.删除记录Person person = (Person)session.Get(typeof(Person),1);session.Delet(person);我们再来看看其它几种方式:1.LoadPerson person = (Person)session.Load(typeof(Person),1);是不是感觉和Get一样?其实……很不一样!Get在找不到对象时会返回一个null引用,而Load则会抛出一个Object NotFoundException,所以,不应该用Load来判断记录是否存在。
另外还有两条非常重要的区别,我们将放在高级话题讨论。
2.QueryIList list = session.CreateQuery(“from Person”).List();Person person = (Person)list[0];~!#@^?? from Person??#$@*&^$这是虾米??好象有点象SQL,不过少了个select啊!而且也没有表名啊!这就是久负盛名的HQL——Hibernate Query Language!HQL实际上是基于对象查询的一种仿SQL脚本,在运行期间,Hibernate会自动根据映射关系将之转换为真正的SQL语句来执行。
什么?又一种SQL?不是说使用O/R Mapping就可以不写SQL了吗,怎么又多了一种“SQL”??当然不是这样了,之所以产生HQL,就是为了能够更加灵活更加面向对象地操作数据,而且你不应该把HQL当成一种新的SQL,因为它——太简单好学了!看看下面的HQL,是不是很熟悉??select from Person as p where p.Id=1select Name from Person where Age>20select Id,Name from Person where Id>1 and Age>20(从这里开始,我们给person表添加了一个age列,请注意)ok,我们这里就详细解释。
hibernate session 的get方法

hibernate session 的get方法(原创实用版6篇)篇1 目录一、Hibernate Session 简介1.Hibernate Session 概念2.Hibernate Session 作用二、Hibernate Session 的 get 方法1.get 方法的作用2.get 方法的使用示例3.get 方法的注意事项三、Hibernate Session 的应用场景1.数据库操作2.事务管理篇1正文一、Hibernate Session 简介1.Hibernate Session 概念Hibernate Session 是 Hibernate 框架中的一个核心接口,它代表了一个数据库操作单元。
在 Hibernate 中,一个 Session 对象用于执行一系列数据库操作,这些操作通常包括查询、插入、更新和删除等。
Session 对象负责将 Java 对象与数据库中的记录相关联,并确保数据库操作的完整性和一致性。
2.Hibernate Session 作用Hibernate Session 的主要作用有以下几点:- 负责数据库连接:Session 对象负责管理数据库连接,当需要执行数据库操作时,Session 会从 Hibernate SessionFactory 中获取数据库连接。
- 负责事务管理:Session 对象提供了事务管理的功能,可以确保一系列数据库操作的一致性和完整性。
- 负责缓存管理:Session 对象负责管理缓存,可以有效地减少数据库访问次数,提高程序性能。
- 负责对象状态管理:Session 对象负责管理 Java 对象与数据库记录之间的映射关系,可以确保对象状态的一致性。
二、Hibernate Session 的 get 方法1.get 方法的作用Hibernate Session 的 get 方法用于根据实体类的主键或其他唯一标识获取对应的实体对象。
通过 get 方法,我们可以将数据库中的记录映射为 Java 对象,从而方便地进行数据操作。
Hibernate操作数据库的方法

Transaction tx = session.beginTransaction();
//创建UserTable类实例
UserTable userTable=new UserTable();
//设置userName属性
userTable.setUserName("张三");
//设置password属性
//取得SessionFactory实例
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
//打开一个Session实例
Session session = sessionFactory.openSession();
//开始事务
sessionFactory = new Configuration().configure(file)
.buildSessionFactory();
} catch (Throwable ex) {
//创建SessionFactory失败信息
System.err.println("Initial SessionFactory creation failed." + ex);
//开始事务
Transaction tx = session.beginTransaction();
//创建UserTable类实例
UserTable userTable=new UserTable();
//设置userName属性
userTable.setUserName("张三");
//设置password属性
userTable.setPassword("123456");
hibernate 使用线程级session

在各种Session 管理方案中,ThreadLocal 模式得到了大量使用。
ThreadLocal 是Java 中一种较为特殊的线程绑定机制。
通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。
首先,我们需要知道,SessionFactory负责创建Session,SessionFactory是线程安全的,多个并发线程可以同时访问一个SessionFactory 并从中获取Session 实例。
而Session并非线程安全,也就是说,如果多个线程同时使用一个Session实例进行数据存取,则将会导致Session 数据存取逻辑混乱。
下面是一个典型的Servlet,我们试图通过一个类变量session实现Session的重用,以避免每次操作都要重新创建:public class TestServlet extends HttpServlet {private Session session;public void doGet( HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {session = getSession();doSomething();session.flush();}public void doSomething(){......//基于session的存取操作}}代码看上去正确无误,甚至在我们单机测试的时候可能也不会发生什么问题,但这样的代Hibernate Developer's Guide Version 1.0September 2, 2004 So many open source projects. Why not Open your Documents?码一旦编译部署到实际运行环境中,接踵而来的莫名其妙的错误很可能会使得我们摸不找头脑。
Hibernate里面的几个方法

Hibernate⾥⾯的⼏个⽅法1、save⽅法:1public void testSave() throws Exception {2 Session session = HibernateUtils.getInstance().getSession();3 session.beginTransaction();4 Teacher tac = new Teacher("哄哄",52);5 session.save(tac);6 session.getTransaction().commit();7 session.close();8 }2、delete⽅法:1public void testDelete() throws Exception {2 Session session = HibernateUtils.getInstance().getSession();3 session.beginTransaction();4 Teacher tac = new Teacher(2L);5 session.delete(tac);6 session.getTransaction().commit();7 session.close();8 }3、update⽅法:1public void testUpdate() throws Exception {2 Session session = HibernateUtils.getInstance().getSession();3 session.beginTransaction();4 Teacher tac = new Teacher(3L,"哄哄",52);5 session.update(tac);6 session.getTransaction().commit();7 session.close();8 }4、list⽅法:1public void testList() throws Exception {2 Session session = HibernateUtils.getInstance().getSession();3 Query query = session.createQuery("select tec from Teacher tec");4 @SuppressWarnings("unchecked")5 List<Teacher> list = query.list();6 System.out.println(list);7 session.close();8 }5、saveorupdate⽅法:1public void testSaveOrUpdate() throws Exception {2/**3 * 利⽤saveOrUpdate添加对象,要使⽤的话,要么没有id,要么4 * 使⽤数据库中已有的id5*/6 Session session = HibernateUtils.getInstance().getSession();7 session.beginTransaction();89/*Teacher tac = new Teacher("哈哈",21);10 session.saveOrUpdate(tac);*/11 Teacher tac = new Teacher(2l,"⼩⼩",21);12 session.saveOrUpdate(tac);1314 session.getTransaction().commit();15 session.close();16 }6、persist⽅法:1public void testPersist() throws Exception {2//添加⽅法JPA规范⾥⾯的3 Session session = HibernateUtils.getInstance().getSession();4 session.beginTransaction();56 Teacher tac = new Teacher("⼤⼤",21);7 session.persist(tac);89 session.getTransaction().commit();10 session.close();11 }7、merge⽅法:1public void testMerge() throws Exception {2/**3 * JPA规范⾥⾯的⼀个⽅法,相当与save4 * 1.如果⾥⾯没有对象⾥⾯没有id,相当于save⽅法;5 * 2.如果有id,但是数据库⾥⾯没有,相当于save⽅法,并且忽略对象⾥⾯的id6 * 3.如果有id,数据库⾥⾯也有,则就相当于update⽅法7*/8 Session session = HibernateUtils.getInstance().getSession();9 session.beginTransaction();1011//Teacher tac = new Teacher(20L,"啦啦啦",21);12 Teacher tac = new Teacher("啦啦啦",21);13 session.merge(tac);1415 session.getTransaction().commit();16 session.close();17 }8、get⽅法:1public void testGet() throws Exception {2/**3 * ⼀级缓存:同时执⾏两个⼀模⼀样的操作,只打印⼀次数据库语句4 * Hibernate: select teacher0_.e_id as e1_0_0_,-5 * teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ -6 * from t_teacher teacher0_ where teacher0_.e_id=?7 * Teacher [id=3, name=⼤⼤, age=21]8 * Teacher [id=3, name=⼤⼤, age=21]9*/10 Session session = HibernateUtils.getInstance().getSession();11 session.beginTransaction();1213 Teacher tea = (Teacher) session.get(Teacher.class, 3L);14 System.out.println(tea);//⼀次操作15 Teacher tea1 = (Teacher) session.get(Teacher.class, 3L);16 System.out.println(tea1);//⼆次操作1718 session.getTransaction().commit();19 session.close();20 }9、load⽅法:1public void testLoad() throws Exception {2 Session session = HibernateUtils.getInstance().getSession();3 session.beginTransaction();4/**5 * session.get在调⽤这个⽅法以后⽴马去数据库查询;6 * session.load在调⽤之后先不管⽤户的返回值,看下⾯的对象的⾮主键getter⽅法是否调⽤,7 * 如果调⽤,再去数据库查询,否则⼀直观望,直到session挂了,在使⽤load的时候⼀定要8 * 保证id在数据库中有对应的对象9*/10/*Teacher tea = (Teacher) session.get(Teacher.class, 4L);11 System.out.println("~~~~~~~~~~~~~~~~~~~~");12 System.out.println(tea);*/13/**控制台的输出结果:14 * Hibernate: select teacher0_.e_id as e1_0_0_, teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ from t_teacher teacher0_ where teacher0_.e_id=?15 * ~~~~~~~~~~~~~~~~~~~~16 * Teacher [id=4, name=⼤⼤, age=21]17*/18 Teacher tea = (Teacher) session.load(Teacher.class, 4L);19 System.out.println("~~~~~~~~~~~~~~~~~~~~~");20 System.out.println(tea);21/**控制台的输出结果:22 * ~~~~~~~~~~~~~~~~~~~~~23 * Hibernate: select teacher0_.e_id as e1_0_0_, teacher0_.e_name as e2_0_0_, teacher0_.e_age as e3_0_0_ from t_teacher teacher0_ where teacher0_.e_id=?24 * Teacher [id=4, name=⼤⼤, age=21]25*/26 session.getTransaction().commit();27 session.close();28 }。
java框架篇---hibernate之session状态
java框架篇---hibernate之session状态Session接⼝是Hibernate向程序提供操纵数据库的最主要接⼝,是单线程对象,它提供了基本的保存、更新、删除和查询⽅法。
它有⼀个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新数据库。
注意:session的某些⽅法(persist,load)不会⽴即把改动写⼊数据库,⽽是缓存到session的⼀级缓存中,除⾮显⽰调⽤flush,或者关闭session时才会更新到数据库1. 临时状态(Transient):没与session关联2. 持久化状态(Persistent):与session关联,没close3. 游离状态(Detached):当session.close后Session的⽅法详解1.保存save:⽴即插⼊数据库,并且返回主键persist:不⽴即(延迟)插⼊数据库,⽆返回值2.获取load:加载对象后,对对象的改动不会⽴即刷新到db,必须flush到dbex: User user=session.load(User.class,2);user.setName('gt');user.flush(); (延迟加载)get:加载对象后,对对象的改动⽴即刷新到db3.更新update:持久化对象,更新saveOrUpdate:包含save()和update()功能,如果传⼊的参数是临时对象(没有保存过)就调⽤save()⽅法;如果传⼊的参数是游离对象,就调⽤update()⽅法merge:不会持久化对象,只会把托管对象的修改更新到db4.删除delete:从数据库中删除与JAVA对象对应的记录5.清理flush:把缓存同步到dbclear:清除session的缓存⼤⼩(更新批量时,应考虑)三种状态的转换关系下⾯通过实例讲解:实体:package cn.itcast.h_session_method;public class User {private Integer id;private String name;private byte[] data = new byte[1024 * 1024 * 5];public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}映射⽂件:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.h_session_method"><!--lazy属性:默认为true,默认可以懒加载。
hibernate session 的get方法
hibernate session 的get方法【最新版3篇】目录(篇1)1.Hibernate session 的概述2.Hibernate session 的 get 方法的作用3.Hibernate session 的 get 方法的使用示例4.Hibernate session 的 get 方法的优点与局限性正文(篇1)一、Hibernate session 的概述Hibernate 是一款流行的 Java 持久化框架,用于将数据库中的数据与 Java 对象之间进行映射。
在 Hibernate 中,session 是核心概念之一,用于执行数据库操作。
通过 session,我们可以查询、插入、更新和删除数据库中的数据。
二、Hibernate session 的 get 方法的作用Hibernate session 的 get 方法用于根据实体类的主键或其他唯一标识从数据库中获取对应的实体对象。
通过使用 get 方法,我们可以将数据库中的记录映射为 Java 对象,从而方便进行后续的数据处理和业务逻辑实现。
三、Hibernate session 的 get 方法的使用示例以下是一个使用 Hibernate session 的 get 方法的简单示例:```java// 创建一个 Hibernate sessionSession session = sessionFactory.openSession();// 通过 get 方法根据主键获取 User 对象User user = session.get(User.class, 1);// 关闭 sessionsession.close();```在这个示例中,我们首先创建了一个 Hibernate session,然后使用get 方法根据主键 1 获取 User 对象。
最后,关闭 session 以释放资源。
四、Hibernate session 的 get 方法的优点与局限性Hibernate session 的 get 方法具有以下优点:1.简化代码:通过 get 方法,我们可以简化数据访问层的代码,提高开发效率。
Hibernate笔记(八)增删改查
从这里可以看出,查询结果被默认按照查询对象存放一个数组里面。
还有一种类似的方法createSQLQuery(),它执行的是sql语句。
String sql="from User u,User2 u2 where u.id=u2.id";Query query = sess1.createSQLQuery(sql).addEntity(User.class).addEntity(User2.class);List list = query.list();User u = (User)((Object[])list.get(0))[0];User2 u2 = (User2)((Object[])list.get(0))[1];上面两种方法效果一样,只是一个使用HQL,一个使用SQL。
如果碰到复杂查询应该怎么解决呢,比如我们需要获得一个部门及其下面的所有员工,我们只需在设计部门对象的时候为其增加一个一对多关联,然后通过单表查询部门表,在每个部门值对象的员工属性中就有其所有的员工了。
当然,在你不需要查询员工信息,而只需要部门信息的时候,你不去取员工的值,那么Hibernate就不会去数据库查询员工的信息(即延迟查询)。
在比如,我们需要在查询员工的时候显示各个员工所在部门的部门名称,只需要在员工值对象中建立员工到部门的多对一关系,在单表查询员工的时候,每个员工值对象中都有部门属性,对应的是部门值对象,包含了其所在部门的全部信息。
再比如员工与部门形成多对一、与项目形成多对多、与住址形成一对一,同时员工与工作计划、工作计划与绩效考核、绩效考核与考核工资等多表形成链状关联,都可以通过员工进行单表查询。
就是说我们可以用单表查询以及值对象关系来处理一些多表查询(使用hibernate提供的一对一、多对多、3种继承关系)。
如果碰到报表这种复杂的查询的时候,那就建议使用JDBC了。
下面说说JDBC查询的一个例子。
Hibernate源码分析_session持久化的过程及模式-事件监听器模式
首先我们先对Hibernate有一个大致的印象●设计模式Hibernate=监听器,实际上是回调●Hibernate3支持拦截器Hibernate配置方面的大原则:●∙∙hbm.xml文件所有配置都是描述本实体,除了cascade描述级联,即如何将本实体的操作(增删查改)传递给关联方。
●∙∙inverse属性表示本实体是否拥有主动权,在一条cascade链路传递过程中,当出现inverse=false表示不再返回原cascade链路,而是从此处重新开始链路。
inverse只有在非many方才有,也就是many-to-many或者one-to-many的set,List 等。
下面是注明inverse=true与inverse=false的cascade链路的区别:说明:若关联属性inverse=true,操作的结果将是校对A的属性所生成的sql;若关联属性inverse=false,结果将是丢弃先前A的操作,而转向对B的属性的校验所生成的sql;如果B中的属性也关联着inverse=false,则仍丢弃B继续新开启链路,直至没有关联方为inervse=false。
不必担心,关联着的双方只有一方拥有inverse属性,所以不会一直传递下去。
还有,丢弃了先前的操作不等于之前的对象操作无效,其效果相当于,原先的session.save(A),变成了session(A.B)而在B校对属性时总会找回A对象的。
测试用例:(暂不考虑inverse=false)测试1:save()一个实体对象操作,预计insert发生在拥有外键方的表,拥有外键方的表是一对多中的多方。
结论1:如果实体对象的外键属性为null,表示不会产生关联,可直接生成sql;如果外键属性不为空,根据配置中的cascade去做关联。
如果cascade=all则生成此表的insert和关联表update的sql,也就是说此时要求关联属性的主键id不能为null;如果cascade=save-update则生成此表的insert和关联表的insert/update的sql(关键属性的主键为null为insert,否则为update)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hibernate session的方法全集Transaction beginTransaction ()开始一个工作单位,并返回值相关的事务对象。
Session.LockRequest buildLockRequest ( LockOptions lockOptions)建立一个LockRequest指定LockMode,悲观锁超时和锁的范围。
void cancelQuery ()取消当前查询的执行。
void clear ()彻底清除会话。
Connection close ()结束释放JDBC连接。
Connection connection ()Deprecated.已过时。
(去除率定于4.x的)。
更换取决于需要;做直接使用JDBC的东西doWork(org.hibernate.jdbc.Work) ;开一个'临时方法'的使用(待定)。
boolean contains ( Object object)检查该实例与此相关的方法。
Criteria createCriteria ( Class persistentClass)创建一个新的标准的实体类的实例,对于给定的,或一个类的超类的一个实体。
Criteria createCriteria ( Class persistentClass, String alias)创建一个新的标准的实体类的实例,对于给定的,或一个类的超类的一个实体的别名,用给定的。
Criteria createCriteria ( String entityName)创建一个新的标准的实体名称的实例,对于给定。
Criteria createCriteria ( String entityName, String alias)创建一个新的标准的实体名称的实例,对于给定的别名,用给定的。
Query createFilter ( Object collection, String queryString)指定过滤器的字符串创建一个新的收集和查询的实例。
Query createQuery ( String queryString)创建一个查询字符串中给定的HQL 查询新的实例。
SQLQuery createSQLQuery ( String queryString)创建一个新的查询字符串给定的SQL实例SQLQuery的。
void delete ( Object object)从数据存储中删除持久化实例。
void delete ( String entityName, Object object)从数据存储中删除持久化实例。
void disableFetchProfile ( String name)禁用特定魂在本次方法概况。
void disableFilter ( String filterName)禁用命名为本类方法的过滤器。
Connection disconnect ()connection.断开连接会话从当前的JDBC。
void doWork ( Work work)控制器允许用户执行JDBC的相关工作,用本次常委会方法管理的连接。
void enableFetchProfile ( String name)启用魂在本类方法特别配置文件。
Filter enableFilter ( String filterName)本类方法启用此命名的过滤器。
void evict ( Object object)从会话中删除此缓存实例。
void flush ()本次方法冲洗力。
Object get ( Class clazz, Serializable id)返回值具有给定给定的实体类的持久化实例标识符,则返回值null,如果不存在这样的持久化实例。
Object get ( Class clazz, Serializable id, LockMode lockMode)Deprecated.已过时。
LockMode参数应改为LockOptionsObject get ( Class clazz, Serializable id, LockOptions lockOptions)返回值具有给定给定的实体类的持久化实例标识符,则返回值null,如果不存在这样的持久化实例。
Object get ( String entityName, Serializable id)返回值给定的命名实体具有给定标识符或NULL,如果不存在这样的持久化实例的持久化实例。
Object get ( String entityName, Serializable id, LockMode lockMode)Deprecated.已过时。
LockMode参数应改为LockOptionsObject get ( String entityName, Serializable id, LockOptions lockOptions)返回值具有给定给定的实体类的持久化实例标识符,则返回值null,如果不存在这样的持久化实例。
CacheMode getCacheMode ()获取当前缓存模式。
LockMode getCurrentLockMode ( Object object)确定给定对象当前的锁定模式。
Filter getEnabledFilter ( String filterName)目前检索启用筛选器的名称。
EntityMode getEntityMode ()检索在本次方法的影响的实体模式。
String getEntityName ( Object object)返回值一个持久化实体的实体名称FlushMode getFlushMode ()获取此会话的当前flush模式。
Serializable getIdentifier ( Object object)返回值给定实体标识符值与此会话相关联。
Query getNamedQuery ( String queryName)获取一个字符串命名查询一个查询实例中定义的映射文件。
Session getSession ( EntityMode entityMode)启动一个给定实体的有效模式新的Session。
SessionFactory getSessionFactory ()获取会话工厂,创造了这个方法。
SessionStatistics getStatistics ()获得本次方法的统计资料。
Transaction getTransaction ()交易实例获取与此相关的方法。
boolean isConnected ()检查当前连接的会话。
boolean isDefaultReadOnly ()将实体和所装载的代理到本次方法作出只读默认?要确定一个特定的实体或代理read-only/modifiaboolean isDirty ()本次方法是否包含任何必须与数据库同步变化?换言之,任何DML操作会被执行,如果我们这次方法boolean isFetchProfileEnabled ( String name)是一个特定的配置文件读取这个会话上启用?boolean isOpen ()检查会话仍然开启。
boolean isReadOnly ( Object entityOrProxy)是指定的单位或者代理只读?若要获取默认read-only/modifiable设置实体和所加载到会话代理使Object load ( Class theClass, Serializable id)返回值给定的给定实体类的持久化实例的标识符,假设实例存在。
Object load ( Class theClass, Serializable id, LockMode lockMode)Deprecated.已过时。
LockMode参数应改为LockOptionsObject load ( Class theClass, Serializable id, LockOptions lockOptions)返回值给定的实体类的持久化实例与指定的标识符,获得指定的锁定模式,假设实例存在。
void load ( Object object, Serializable id)阅读与给定的持久状态到给定的瞬时实例标识符相关联。
Object load ( String entityName, Serializable id)返回值给定的给定实体类的持久化实例的标识符,假设实例存在。
Object load ( String entityName, Serializable id, LockMode lockMode)Deprecated.已过时。
LockMode参数应改为LockOptionsObject load ( String entityName, Serializable id, LockOptions lockOptions)返回值给定的实体类的持久化实例与指定的标识符,获得指定的锁定模式,假设实例存在。
void lock ( Object object, LockMode lockMode)Deprecated.已过时。
改为调用buildLockRequest(LockMode)。
锁(对象)void lock ( String entityName, Object object, LockMode lockMode)Deprecated.已过时。
改为调用buildLockRequest(LockMode)。
锁(entityName,对象)Object merge ( Object object)复制到具有相同的持久对象给定对象的状态标识符。
Object merge ( String entityName, Object object)复制到具有相同的持久对象给定对象的状态标识符。
void persist ( Object object)做一个瞬态的实例持久化。
void persist ( String entityName, Object object)做一个瞬态的实例持久化。
void reconnect ()Deprecated.已过时。
手动数据连接只需要在连接的情况下应用程序提供的,在这种情况下,reconnect(java.sql.Connection)为应使用。
void reconnect ( Connection connection)数据连接到给定的JDBC连接。
void refresh ( Object object)重读从基础数据库中的特定实例的状态。
void refresh ( Object object, LockMode lockMode)Deprecated.已过时。