繁体   English   中英

Hibernate,WebLogic 10.3和JPA 2.0

[英]Hibernate, WebLogic 10.3 and JPA 2.0

我使用Spring 4.0,Hibernate 4.3和JPA 2.1创建了一个应用程序。 不幸的是,最后一刻我意识到我们正在使用的服务器不支持JPA 2.1(WebLogic 10.3.6)。

请注意,我无法控制正在使用的服务器-无法将其升级到更高版本。 另外,我知道我应该更加了解我们在使用什么。 但是,我现在不能更改它。 这将是未来的经验教训。

我现在处于两难的境地,因为客户已经在本地看到了工作版本,并希望该应用程序很快就会部署到Web服务器上。 我意识到我需要重写数据持久层的大部分。

谁能帮助我确定Hibernate 4.2.8和Hibernate 4.3之间有哪些区别以及JPA 2.1之间的区别? 我知道这是一个很大的问题,但是我没有别的参考点可以为我的组织提供帮助。 我希望可以在这里得到一些指导。

至此,我认为恢复到早期版本会影响以下领域:

  • JPA表
  • JPA联接索引
  • 一些自动接线
  • 一些注释

我知道还有其他一些问题,但是我在解决其他问题时正在寻找它们。 我遇到的最大问题之一是联接,因为使用@ManyToOne和联接列有许多双向关系。

我的问题是:Hibernate 4.3中常用的哪些功能在Hibernate 4.2.x中不存在? 没有JPA 2.1,不支持哪些功能? 您是否认为差异足够大,因此有必要从头开始重写当前的数据持久层?

如果问题太大,请告诉我,我将尝试进一步完善。

预先感谢您的帮助。

我们在weblogic 12上遇到了同样的问题。我们的应用程序使用了hibernate / JPA 2.1,它与weblogc 12提供的JPA 2.0冲突。

您可以使用WebLogic wls-cat 分析工具 (也称为wls-cat )来识别WLS库与应用程序之间的所有冲突。

解决方案是告诉weblogic不要使用其捆绑的旧框架。

就我而言,我正在部署包含休眠和JPA 2.1 API的战争。

创建WEB-INF / weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
  xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
  <wls:container-descriptor>
    <wls:prefer-application-packages>
      <wls:package-name>org.slf4j</wls:package-name>
      <wls:package-name>org.joda</wls:package-name>
      <wls:package-name>javax.persistence</wls:package-name>
    </wls:prefer-application-packages>
  </wls:container-descriptor>
</wls:weblogic-web-app>

如果有一种方法可以告诉weblogic使用WAR中的所有库,而永远不要使用它的库的旧副本,那将是很好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM