session.close();
ystem.out.println(c2.getName()); c2 = null;
根据以上代码,Customer对象在哪行转变为持久化对象?、 29
tx = session.beginTransaction();
Customer c1 = new Customer(\ session.save(c1); Long id = c1.getId(); c1=null;
Customer c2 = (Customer)session.load(Customer.class,id); tx.commit();
session.close();
ystem.out.println(c2.getName());
c2 = null;
根据以上代码,Customer对象在哪行转变为游离对象? 30
public void compareDifferentSession(){ Session session1 = sf.openSession(); Session session2 = sf.openSession();
Transaction tx1 = session1.beginTransaction();
Transaction tx2 = session2.beginTransaction();
Customers a = (Customers)session1.load(Customers.class, new Long(1)); Customers b = (Customers)session1.load(Customers.class, new Long(1)); Customers c = (Customers)session2.load(Customers.class, new Long(1)); 1 System.out.println(a==b); 2 System.out.println(a==c); tx1.commit(); tx2.commit(); session1.close();
session2.close(); }
在以上代码中,System.out.println(a==b);这条语句打印出来结果是什么? 31
public void compareDifferentSession(){ Session session1 = sf.openSession(); Session session2 = sf.openSession();
Transaction tx1 = session1.beginTransaction();
Transaction tx2 = session2.beginTransaction();
Customers a = (Customers)session1.load(Customers.class, new Long(1)); Customers b = (Customers)session1.load(Customers.class, new Long(1)); Customers c = (Customers)session2.load(Customers.class, new Long(1)); 1 System.out.println(a==b); 2 System.out.println(a==c); tx1.commit(); tx2.commit(); session1.close(); session2.close();
}
在以上代码中,System.out.println(a==c);这条语句打印出来结果是什么? 33
session.contains()可以检查某个对象是否在缓存中。 34
session.evict()可以将所有对象从缓存中清除。 35
session.clear()可以将某个对象从缓存清除。
36
代码一 :
public void saveA(){
tx = session.beginTransaction();
Customers customer = new Customers(); customer.setName(\session.save(customer); tx.commit(); }
代码二:
public void saveB(){
tx = session.beginTransaction(); Customers customer = new Customers(); session.save(customer); customer.setName(\tx.commit();
}
以上两段代码执行结果一样吗? 37
saveOrUpdate()方法同时包含了save() 与update()的功能。 38
如果传入的是临时对象,就调用update()方法 39
如果传入的是游离对象,就调用save() 方法
40
在使用saveOrUpdate()方法时,Hibernate总是对customer对象发送update(customer),这时unsaved-value的值是什么? none any
41
在使用saveOrUpdate()方法时,Hibernate总是对customer对象发送save(customer),这时unsaved-value的值是什么? none any
42
请你说说Session的Load()和Session的Get()的区别
一.当数据库中不存在与OID对应的记录时,load()方法抛出
org.hibernate.ObjectNotFoundException异常
而get()方法抛出java.lang.NullPointerException异常
二.执行Load() 方法时,Session.load()方法是不会立即到数据库查询,它只是返回一个代理。 执行Load() 方法时,Session.get()方法是立即到数据库查询,返回对象 44
Hibernate有几种检索方式?
导航对象图检索方式 OID检索方式 HQL检索方式 QBC检索方式
本地SQL检索方式 45
以下哪种检索方式是面向关系检索方式?
OID检索方式 HQL检索方式 QBC检索方式
本地SQL检索方式
46
以下哪些检索方式是面向对象检索方式?
OID检索方式 HQL检索方式 QBC检索方式
本地SQL检索方式 49
public void sqlTest(){
Query query = session.createSQLQuery(\query.setInteger(\Iterator it = query.list().iterator(); while(it.hasNext()){
Customers c = (Customers)it.next();
System.out.println(\} }
以上代码片断运行是否正确?
50
以下哪些检索方式用到Query接口? 导航对象图检索方式 OID检索方式 HQL检索方式 QBC检索方式
本地SQL检索方式
51
检索策略包括哪些?
立即检索 延迟检索
迫切左外连接检索
52
类级别的检索策略有哪些? 立即检索
延迟检索
迫切左外连接检索
=:cId\ 53
关联级别的检索策略有哪些?
立即检索 延迟检索
迫切左外连接检索
54
类级别的检索策略影响哪些方法? load() get() 55
关联级别检索策略影响哪些方法?
load() get()
56
在检索策略中,lazy属性的默认检索策略是什么? true false
57
在检索策略中,lazy属性的值为“true”时的检索策略是什么? 立即检索 延迟检索
迫切左外连接检索
58
针对在查询的时候Select语句太多,需要频繁的访问数据库,影响检索性能的情况, Hibernate采用哪种检索,来解决这个缺陷?
延迟检索
立即检索
迫切左外连接检索
59
针对在一些应用逻辑中只需要访问Customer对象,而不需要访问Order对象的场合,加载Order对象
完全是多余的操作的情况,Hibernate采用哪种检索,来解决这个缺陷?