当前位置: 首页 > 面试题库 >

JPA还是Hibernate for Java Persistence?

秦滨海
2023-03-14
问题内容

我正在研究Java,.NET和Groovy中企业应用程序的开发。对于每个平台,我们将尝试实现一个简单的SOAP
Web服务有多困难。我们将使用最常用的工具和库来尽可能准确地研究现实世界。

在这方面,当使用Hibernate进行持久化时,是否会更好地反映出使用新的JPA(Java Persistence
API)或JPA出现之前就已经存在的Hibernate自定义API的真实情况?


问题答案:

您可能已经知道,从3.2版本开始,Hibernate已通过JPA认证。您可以轻松地将Hibernate用作JPA提供程序,而不必使用任何Hibernate的“自定义”
API。

我建议与Hibernate一起使用直接JPA作为提供程序。并且使用注释而不是XML(更好)。

然后,当您需要一点额外的东西时,您可以随时获得Hibernate
Session。例如,我经常发现我需要这样做才能将集合作为参数(setParameterList)传递给查询。



 类似资料:
  • 问题内容: 我需要在应用程序中使用实体框架,并且在Oracle数据库中使用了表分区。使用简单的JDBC,我可以从特定分区中选择数据。但是我不知道我是否可以使用hibernate或Eclipse链接(JPA)进行相同操作。如果有人知道该怎么做,请告诉我。 通常是JDBC-SQL中的select语句, 如何使用Hibernates或JPA进行同样的操作? 请至少分享一个学习资源的链接。 谢谢!!! 问

  • Spring-data-jpa对@query注释中定义的query做了什么?它是在部署期间被翻译成SQL一次(如NamedQuery)还是每次都被翻译一次(如动态查询)?

  • 我想运行一个复杂的HQL查询。我的一个参数是< code >集合 类似: spring甚至不能启动< code >???未映射 从表t中选择t,其中size((:codes)) = 0或t.code IN (:codes) 和许多其他人 是否有一种通用方法可以进行此检查并使此查询在不完全构建查询的情况下工作?

  • 问题内容: 假设我们有两个实体,A和B。B与A具有多对一关系,如下所示: 现在,我要删除对象,并将删除操作级联到其所有子项。有两种方法可以做到这一点: 添加到OneToMany批注中,让JPA删除所有子项,然后再从数据库中删除A对象。 保持类不变,只需让数据库级联删除操作即可。 使用后面的选项有什么问题吗?这会导致实体管理器保留对已删除对象的引用吗?我之所以选择选项2而不是选项1的原因是,选项1生

  • 根据yaml.org,正式文件扩展名为。 报价: 如果可能,请使用“.YAML”。 然而,在互联网上使用哪种扩展似乎存在分歧。如果您在web上查找示例,许多示例都使用未经许可的扩展名。

  • 问题内容: 在一对多JPA关联中,将空关系初始化为空集合是否被视为最佳实践?例如。 在上面的示例中,最好将默认值定义为空吗?优缺点都有什么? 问题答案: JPA本身并不关心集合是否已初始化。当使用JPA从数据库中检索订单时,JPA将 始终 返回带有非空OrderLine列表的Order。 原因:因为一个订单可以有0行,1行或N行,并且最好用一个空的,一个大小或N个大小的集合进行建模。如果集合为空,