java类,javase面试题
目前的企业面试中经常听到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面试题的话,就请多多关注我们网站了解具体了。
推荐阅读: