首页天道酬勤java类,javase面试题

java类,javase面试题

张世龙 05-12 09:49 116次浏览

目前的企业面试中经常听到jpa。 多了解相关问题是有益无害的。 小编这里整理了常见的jpa问题。 感兴趣的伙伴们请更了解。

一、什么是jpa?

答: a:JavapersistenceAPI(JPA )是Java规范,用于在Java对象和关系数据库之间存储数据。

JPA为面向对象的域模型和关系数据库系统提供了桥梁。 因为JPA只是一个规范,所以它本身什么都不做。 那需要实现。

因此,诸如Hibernate、TopLink和iBatis等ORM工具提供了数据持久性的JPA规范。 Java持久性

API(JPA )的第一个版本JPA 1.0于2006年作为EJB 3.0规范的一部分发布。

二、jpa默认的FetchType是LAZY还是EAGER?

a (既不是a(lazy也不是eager,请区别开来看。

onetoone的默认值为eager

manytoone的默认eager

onetomany的默认值为lazy

三、jpa如何在设置CascadeType后级联查询?

a ) CascadeType本身与查询没有一分钱的关系。 级联是指添加或删除这些操作时执行的相关操作。

四. EJB 2.0不支持继承,但可以在几个不同的位置(远程/bean )使用继承。 但是,不在本地使用。 说一下那个理由吧。

根据EJB2.1规范附录D 3,当前的EJB规范未指定组件继承概念。

另一方面,JPA标准确实规定了实体继承的概念。 虽然解决了EJB 2.1规范中指出的各种问题和复杂性,但现在可以将其与完整的多态性查询相关联。

五、BEA计划何时支持/发布EJB3?

答: WebLogic server 10技术预览是完全符合标准的Java EE

5 APP应用程式伺服器。 包含对EJB3的完全支持。 WebLogic Server 10通常在3月下旬发布。

此外,Kodo是完全符合标准的生产准备JPA实施,已经发布。

六、JPA是否支持组合主键?

答: JPA支持自然ID和组合ID,以及数据库分配或实现分配的数字。

七、有没有像JDBC模板那样可以在容器外部使用的Spring模板?

a :是的。 Spring 2包含JPA模板。 但是,Spring

可以对表示为@Repository的任何bean执行JPA异常翻译。 因此,通常对于新的APP应用,希望直接使用JPA

API而不是另一个模板层。 对于使用模板的方法和正在迁移到JPA的现有APP应用程序,使用模板是比较合理的。

另外,像Java那样

在EE服务器上,同样将JPA持久性单元部署到Spring,Spring向JPA规范中指出的EntityManager注入并搜索容器规则。

八、JPA是否支持JDK1.4?

答: JPA需要Java 5或更高版本。

九、规范解决了缓存问题吗?

a ) JPA规范没有解决l2缓存问题(EntityManagerFactory-),但提供了实现缓存时必须遵守的一些数据锁定和完整性规则,即使启用了缓存也是如此

虽然在未来的JPA规范版本中可能会解决一些与缓存相关的主题,但大多数缓存主题不需要指定规则,因此每个供应商都可以轻松地执行不同的任务。 这里添加的最重要的内容是基本的缓存控制API,例如重用特定的对象ID或将频繁访问的ID固定在缓存中。

十、对于EJB2,EJB3可以处理多少并发事务?

答:从纯会话bean的角度来说,至少在WebLogic上

在服务器上,并发事务的数量没有差别。 这意味着,将APP应用程序从EJB2会话bean转换为EJB3会话bean不会更改任何持久性计算机

系统可能不会发现很大的差异。 这是因为EJB3规范将会话bean部分的大多数更改都集中在改进编程模型上。

从实体bean的角度来看,对于大多数APP应用程序,WebLogic server EJB

2.1和JPA支持的并发事务数相同。 对于非主键查询,JPA可能具有很高的可伸缩性。 一旦你开始研究Kodo

使用锁定组等功能,对于固定域模型,可以从基于JPA的系统中检索更多并发事务。

十一、如何将JPA应用于AquaLogic DSP?

AquaLogic

DSP侧重于对数据的多重存储访问,将数据作为数据服务提供。 这些数据通常显示为XML或SDO。 JPA规范侧重于与数据存储交互的Java

API。 假设JPA绑定到AquaLogic DSP,或者SDO绑定到Kodo产品(BEA的JPA实现)。

十二、实现过程的最佳场所是什么? 例如,您是否要检查许多用户及其帐户(在银行APP应用程序中)以支付利息? 是在数据库存储过程中实现,在EJB中使用JPA实现,还是同时使用这两者?

答:根据我的经验,这实际上取决于组织

因素,而不是其他因素。一些工作室更喜欢在存储过程中进行大量编码,而另一些则喜欢在Java中实现其业务逻辑。每种方法各有优势和代价。

尽管如此,还是有一些问题可促使他们优先考虑其中的一种环境。在您的例子中,在数据库中执行大量计算可能比将数据加载到内存中更快,因此使用存储过

程可能比较合理。另一方面,数据库承担这么多负载将对该应用程序的用户产生负面影响,因此最好付出一定代价跨网络拉出这些数据,以便将该数据库用作严格的

存储系统,而不是计算引擎。或者,如果应用程序的其余部分主要使用JPA,则适用的话,可能希望使用JPQL的大批量更新功能来进行更新。

十三、如果不先将数据加载到内存中,是否可以执行大批量更新?

答:是的,可以通过JPQL执行大批量更新和大批量删除:

UPDATE Employee e SET e.salary = e.salary * 1.1 WHERE e.salary <

100000

十四、你们对Kodo

JDO有什么规划?JPA是否会通过实现JDO的所有功能而将其取代?如果是的话,是否存在任何时间表?如果不是,你们会不会继续积极地开发JDO?

答:BEA仍然完全忠于JDO。从规范的观点来看,我认为过一段时间之后,JPA将包含当前的JDO规范中越来越多的功能。

十五、什么是持久化单元?

答:持久化单元是类和配置设置的集合,可以根据该集合创建EntityManagerFactory。它在 persistence.xml

文件中作为一个条目出现。

十六、如何在WebLogic 9.2中测试JPA

答:现在可以在WebLogic

9.2中使用OpenJPA或Kodo。该服务器不执行会话bean持久化单元注入,但是在10.0服务器中可以这么作,并且在9.2中,没有任何

Kodo控制台集成。但是除了引导注入问题之外,应该能够在WebLogic 9.2中成功地使用JPA,包括参与托管事务。

十七、JDBC连接对应于JPA中的什么概念?

答:JPA EntityManager大致相当于JDBC连接,而JPA EntityManagerFactory从概念上类似于JDBC数据源。JPA

EntityTransaction(仅在JTA / appserver上下文以外可用)相当于JDBC连接的事务控制API。。

以上就是今天的全部内容,有关jpa面试题就到这了,还想了解更多java面试题的话,就请多多关注我们网站了解具体了。

推荐阅读:

jvm类加载机制原理,java类加载机制详解