Jpa 为什么要将Hibernate作为框架添加到WAR模块中?

Jpa 为什么要将Hibernate作为框架添加到WAR模块中?,jpa,jakarta-ee,netbeans,war,Jpa,Jakarta Ee,Netbeans,War,我使用NetBeans,但我不懂一些东西。有人能解释一下为什么我要在JavaEE应用程序中将Hibernate作为框架添加到WAR模块中吗?WAR模块只是表示层。我将访问EJB模块中的DB。但没有办法将其作为一个框架添加到其中。当我试图将JAR从WAR库拖到EJB库时,光标变为“Droping is disabled”,什么也没有发生。为什么不在正确的地方举行呢?(例如,对于多层应用程序) 我只想访问EJB模块中的实体数据。WAR是一个Web应用程序归档,这意味着它不仅仅是表示层 在过去,常用的

我使用NetBeans,但我不懂一些东西。有人能解释一下为什么我要在JavaEE应用程序中将Hibernate作为框架添加到WAR模块中吗?WAR模块只是表示层。我将访问EJB模块中的DB。但没有办法将其作为一个框架添加到其中。当我试图将JAR从WAR库拖到EJB库时,光标变为“Droping is disabled”,什么也没有发生。为什么不在正确的地方举行呢?(例如,对于多层应用程序)
我只想访问EJB模块中的实体数据。

WAR是一个Web应用程序归档,这意味着它不仅仅是表示层

在过去,常用的方法是使用EAR文件,其中包含每个EJBJAR、库JAR和WAR。然后,类加载器层次结构(大多数情况下)转到服务器->EAR->WAR

在过去的几个JavaEE版本中,WAR开始接管这一职责(至少在JavaEE的web概要中是AFAIK)

因此,您可以通过WEB-INF/lib将EJB-JAR和库JAR添加到WAR中。这两个工件都由应用服务器加载并扫描托管资源,例如EJB或CDIBean

如果您想把它放在战争之外,您必须使用EAR或将Hibernate放在应用程序服务器的类路径中


希望这能澄清问题。

WAR是一个Web应用程序归档,这意味着它不仅仅是表示层

在过去,常用的方法是使用EAR文件,其中包含每个EJBJAR、库JAR和WAR。然后,类加载器层次结构(大多数情况下)转到服务器->EAR->WAR

在过去的几个JavaEE版本中,WAR开始接管这一职责(至少在JavaEE的web概要中是AFAIK)

因此,您可以通过WEB-INF/lib将EJB-JAR和库JAR添加到WAR中。这两个工件都由应用服务器加载并扫描托管资源,例如EJB或CDIBean

如果您想把它放在战争之外,您必须使用EAR或将Hibernate放在应用程序服务器的类路径中


希望这能澄清问题。

如果你坚持使用标准JPA API,并且运行在现代Java EE服务器上,那么你根本不需要担心Hibernate。如果你坚持使用标准JPA API,并且运行在现代Java EE服务器上,那么你根本不需要担心Hibernate。谢谢你的回复。但我知道大部分。这并没有澄清问题:那么分布式多层体系结构呢?当表示和业务逻辑发生在不同的节点上时。在这种情况下,没有理由在web服务器上部署Hibernate。这是一个JavaEE应用程序,所以EAR始终存在。感谢您的回复。但我知道大部分。这并没有澄清问题:那么分布式多层体系结构呢?当表示和业务逻辑发生在不同的节点上时。在这种情况下,没有理由在web服务器上部署Hibernate。这是一个JavaEE应用程序,所以EAR始终存在。