![]() |
1
7
一点历史: 实体bean是EJB1和EJB2的一部分,它们是很难使用的,因此需要一种替代方法。然后冬眠出现了(我不记得这些时候了)
JPA只是一个规范——它定义了ORM框架应该做什么,以及应该支持什么注释。JPA由许多供应商实现—Hibernate、EclipseLink、OpenJPA等。
更新: 关于你在评论中的第二个问题:
容器注入了实体管理器,可以操作JPA实体。当然,您需要对此进行配置,但这超出了问题的范围。 |
![]() |
2
3
JPA是一个规范。Hibernate是这个规范的一个实现,另一个实现是Toplink,但是还有其他的实现。 您应该尽量依赖标准JPA特性。不过,有一些特定于Hibernate的有用特性,但是如果您决定切换实现,这些特性会降低应用程序的可移植性。 实体bean是指EJB2.x实体bean?这是一个“死”的技术,被证明是太难使用。 |
![]() |
3
2
我发现从实用的角度来看,包括hibernate在内的所有JPA实现都非常相似,并且适用于相同的用例。然而,如果它们被用于非设计用途的东西,它们往往有点,嗯……,脾气暴躁。
iBatis允许您在单独的文件中编写纯SQL查询,并将它们映射到java对象。这使得SQL代码不会出现在Java代码中。为查询指定一个名称,并在代码中引用该名称。这对于需要与集成的大型遗留数据库非常有效。 对于一些简单的非正式查询,像springjdbctemplate这样的东西也可以在没有前面框架的认知负载的情况下工作。 |
![]() |
4
1
|
![]() |
5
1
差异很微妙,很难理解:
|
![]() |
6
0
JPA的一些主要供应商的名单在上面 http://en.wikipedia.org/wiki/Java_Persistence_API 在JPA2部分下。 最好自己决定实现,因为支持应用程序的是您,但始终坚持基于标准的特性,而不是“附加组件”;从长远来看你会受益的 |
![]() |
TheCrunchyPotato · JPA查询找不到正确的构造函数 3 年前 |
![]() |
Maiko Kingma · hibernate何时加载映射关系 7 年前 |
![]() |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 7 年前 |
![]() |
Jovan0042 · 在H2中持久化多个实体引发异常 7 年前 |
![]() |
Nemeth Attila · 如何编写多对多关联表的查询 7 年前 |