试题中所出现的重点

1、脏检查和刷新缓存的区别:

脏检查:是事务提交的时候进行的

刷新缓存:刷新缓存的机制就是脏检查

  两种方式:

  1.事务提交

  2.session.flush();

 

2、关于HQL语句

     from  Dept  检索所有部门信息

     select  d  from  cn.shang.entity.student  d   检索所有部门信息

 

3、inverse

解析:

   维护关联关系

         true:自己不维护关联关系,对方维护

         false:自己维护关联关系

 

4、延迟加载:

       分类: 

               类级别  true(默认),false

               一对多和多对多(one to many   &    many to many) true(default),false,extra(加强延迟加载)

                  多对一(many  to  one) 没有set  proxy(default),no-proxy,false

 

5、持久化类

public class Dept {
	@Id   持久化类的标识 
	  Hibernate_Session

	@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_gen")
	定义自己的序列生成器
	@SequenceGenerator(name="seq_gen",sequenceName="SEQ_Num",allocationSize=1,initialValue=1)
	private Integer deptNo;
	private String deptName;
	@OneToMany(mappedBy="dept",cascade={CascadeType.ALL})
/*	@Fetch(FetchMode.JOIN)
	@LazyCollection(LazyCollectionOption.FALSE)*/
	private Set emps=new HashSet();
	public Set getEmps() {
		return emps;
	}
	public void setEmps(Set emps) {
		this.emps = emps;
	}
	public Dept(Integer deptNo, String deptName) {
		this.deptNo = deptNo;
		this.deptName = deptName;
	}
	public Dept() {
	}
	public Integer getDeptNo() {
		return deptNo;
	}
	public void setDeptNo(Integer deptNo) {
		this.deptNo = deptNo;
	}
	public String getDeptName() {
		return deptName;
	}
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}	
}

 

 试题案例:

1.在Hibernate中,以下关于主键生成器说法错误的是(C)。

Aincrement可以用于类型为longshortbyte的主键 long,short,byte都是特殊的int类型

Bidentity用于如SQL ServerDB2MySQL等支持标识列的数据库 identity是标识列的意思

Csequence用于如OracleSQL Server等支持序列的数据库 SqlServer是不能使用序列的

DnativeHibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值

 

2.在Hibernate中,关于脏检查和刷新缓存说法正确的是( CD)。

 

A.当事务提交时,会发生脏检查 事务提交之前会自动调用commit()方法

 

BSessionflush( )方法是刷新缓存的方法

 

C.在执行Sessioncommit( )方法之前不会调用Sessionflush( )方法

 

D.编写代码时,调用commit( )方法之前要调用flush( )方法  无需手动调用,hibernate会自动帮我们调用方法!

刷新缓存刷新的就是脏检查

3.使用HQL查询所有部门信息,以下正确的是(AD)。

Afrom Dept 

Bselect * from cn.jbit.demo.entity.Dept  不能使用*

Cselect Dept from cn.jbit.demo.entity.Dept d   正确写法是:select d from cn.jbit.demo.entity.Dept d

Dselect d from Dept d

 

4.关于Query接口的list( )iterate( )方法,说法正确的是(AD)。

 

A.执行list( )方法,查询所有符合条件的记录

 

B.执行iterate( )方法,查询所有符合条件的记录

 

C.执行list( )方法,查询出所有符合条件的主键值

 

D.执行iterate ( )方法,查询出所有符合条件的主键值

list()方法的作用是查询记录,而iterate()方法是检索id

5.在HQL中,关于Query接口绑定参数的方法,说法正确的是(ABCD)。

AsetParameter( )方法用于绑定任意类型的参数 正确,参数类型可以是object

 

B.setParameter( )有重载的方法 

 

C.setProperties( )有重载的方法

 

D.setProperties( )方法用于绑定命名参数

 

 

 

6.在Hibernate中,关于以下映射配置,说法错误的是(D)。

 

 

    

 

        

 

            

 

        

 

        

 

        

 

        

 

            name="dept"

 

            column="DEPTNO"

 

            class="cn.jbit.hibernatedemo.entity.Dept"

 

        />

 

    

 

 

A.此配置信息描述了cn.jbit.hibernatedemo.entity.Emp类和EMP表的映射

 

B.描述的是scott用户的EMP

 

C标签中的name属性值dept是cn.jbit.hibernatedemo.entity.Emp类的属性名

 

D标签中的column属性值DEPTNOdept表的主键名 描述的是Emp表的外键

7.在Hibernate映射文件中,关于inverse属性说法正确的是(ACD)。

Ainverse属性有两个值:truefalse 正确

B标签有inverse属性 没有

C标签有inverse属性 正确

Dinverse属性用于指定维护关联关系的那一方 正确

 

8.在Hibernate映射文件中,关于延迟加载配置说法错误的是(B)

 

A标签中lazy属性可选值:truefalse 

 

B标签中lazy属性可选值:trueproxyno-proxy

 

C< set>标签中lazy属性可选值:true、extrafalse

 

D标签中lazy属性可选值:proxytruefalse

 

类级别 true(默认),false
一对多和多对多 true(default),false,extra(加强延迟加载)
多对一(没有set) proxy(default),no-proxy,false

9.在Hibernate映射文件中,关于标签说法正确的是(D)。

A标签用来映射组件类

B标签通过指定组件类所属的整体类

C标签通过指定组件类的属性

D标签有idnameclass属性 没有id属性

 

转载于:https://www.cnblogs.com/zsping/p/5899226.html

你可能感兴趣的:(试题中所出现的重点)