常见面试问题及答案.docx
常见面试问题及答案Hibernate中get和Ioad有什么不同之处把get和IOad放到一起进展比照是Hibernate面试时最常问到的问题,这是因为只有正确理解get()和1.oad。这二者后才有可能高效地运用Hibernateget和1.oad的最大区分是,假如在缓存中没有找到相应的对象,get将会干脆访问数据库并返回一个完全初始化好的对象,而这个过程有可能会涉及到多个数据库调用;而1.oad方法在缓存中没有发觉对象的状况下,只会返回一个代理对象,只有在对象get1.d()之外的其它方法被调用时才会真正去访问数据库,这样就能在某些状况下大幅度提高性能。你也可以参考Hibernate中get和IOad的不同之处,此链接给出了更多的不同之处并对该问题进展了更细致的探讨。Hibernate中save、persist和SaveOr1.Ipdate这三个方法的不同之处?除了get和1.oad,这又是另外一个常常出现的Hibernate面试问题。全部这三个方法,也就是SaVe()、SaVeOrUPdate()和PerSiSt()都是用于将对象保存到数据库中的方法,但其中有些微小的差异。例如,save()只能INSERT记录,但是SaVeorUPdate()可以进展记录的INSERT和UPDATEo还有,save()的返回值是一个Seria1.izab1.e对象,而persist)方法返回值为Voido你还可以访问save、persist以及SaveOrUpdate>找到它们全部的不同之处。Hibernate中的命名SQ1.咨询指的是什么?Hibernate的这个面试问题同Hibernate供应的查询功能相关。命名查询指的是用标签在影射文档中定义的SQ1.杳询,可以通过运用SeSSiOn.getNamedQuery()方法对它进展调用。命名查询使你可以运用你所指定的一个名字拿到某个特定的查询。Hibernate中的命名查询可以运用注解来定义,也可以运用我前面提到的xm1.影射问句来定义。在Hibernate中,NameQUery用来定义单个的命名杳询,(三)NameQueries用来定义多个命名查询。Hibernate中的SessionFactory有什么作用?SeSSionFaCtory是线程平安的吗?这也是Hibernate框架的常见面试问题。顾名思义,SessiOnFaCtory就是一个用于创立Hibernate的Session对象的工厂。SessionFactory通常是在应用后动时创立好的,应用程序中的代码用它来获得SeSSion对象。作为一个单个的数据存储,它也是线程平安的,所以多个线程可同时运用同一个SessionFactoryoJava正E应用一般只有一个SessionFactorv,效劳于客户请求的各线程都通过这个工厂来获得Hibernate的Session实例,这也是为什么SessionFactory接口的实现必需是线程平安的缘由。还有,SessionFactory的内部状态包含着同对象关系影射有关的全部元数据,它是不行变的,一旦创立好后就不能对其进展修改了。Hibernate中的Session指的是什么?可否将单个的Session在多个线程间进展共享?前面的问题问完之后,通常就会接着再问这两个问题。问完SessionFactorv的问题后就该轮到SessionfoSession代表着Hibernate所做的一小局部工作,它负贡维护者同数据库的链接而且不是线程平安的,也就是说,Hibernage中的SeSSion不能在多个线程间进展共享。虽然SeSSion会以主动滞后的方式获得数据库连接,但是SeSSion最好还是在用完之后立刻将其关闭。hibernate中sortedco1.1.ection和orderedco1.1.ection有什么不同?T这个是你会遇到的全部Hibernate面试问题中比拟简洁的问题。sortedco1.1.ection是通过运用Java的COmParator在内存中进展排序的,orderedco1.1.ection中的排序用的是数据库的Orderby子句。对于比拟大的数据集,为了幸免在内存中对它们进展排序而出现JaVa中的OutOfMemoryError,最好运用OrderedCO1.IeCtiOn。Hibernate中transientspersistent>detached对象三者之间有什么区分?在Hibernate中,对象具有三种状态:transientspersistent和detached同Hibernate的session有关联的对象是persistent对象。对这种对象进展的全部修改都会遵照事先设定的刷新策略,反映到数据库之中,也即,可以在对象的任何一个属性发生变更时H动刷新,也可以通过调用SessionfushO方法显式地进展刷新。假如一个对象原来同SeSSiOn有关联关系,但当下却没有关联关系了,这样的对象就是detached的对象。你可以通过调用随意一个SeSSiOn的UPdate()或者SaVeorUPdate()方法,重新将该detached对象同相应的seesion建立关联关系。TranSient对象指的是新建的许久化类的实例,它还从未同Hibernate的任何Session有过关联关系。同样的,你可以调用PerSiSt()或者save()方法,将transient对象变成PerSiStent对象。可要记住,这里所说的transient指的可不是Java中的transient关键字,二者风马牛不相及。猜你宠爱:1.高校部门而试常见问题及参考答案2 .常见面试题及答案3 .面试问题及答案技巧大全4 .学生会常见面试问题101那么5 .外资企业常见面试问题及答案6 .应聘求职时HR常问面试问题及答案7 .移动公司常见面试问题与答复