java - 可以使用 8.4 和 9.0 postgres( hibernate )库构建一个 .war 文件吗?

标签 java hibernate postgresql maven

到目前为止,我们一直在使用 Maven 依赖项来指定库,即:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>3.6.10.Final</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-c3p0</artifactId>
  <version>3.6.10.Final</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>8.4-702.jdbc4</version>
</dependency>

但是,我们现在在不同的机器上运行完全相同的 .war 文件,并且希望保持相同的 One-war-file-to-rule-them-all,但不想通过使用来解决问题postgres 9.1 安装上的较旧驱动程序(例如,尤其是当字节数组编码默认值已更改时)。 Cliff-Claven 之类的信息可能无关紧要,但还是添加了:这两个安装的操作系统都是 Mac OS X Server,Postgres 8.4 运行在 10.6 上,9.1 运行在 10.7 上。我们不需要升级任何数据(从头开始的单独实例)。

也许这比其他任何问题更像是一个专家问题,但我似乎看不出有什么特别适合我的情况。我确实找到了 this ,但它是较旧的 Hibernate 3.5,不再适用。

最佳答案

对于 PostgreSQL,无论服务器版本如何,都应该使用最新版本的 JDBC 驱动程序,除非是真正非常古老的版本。

http://jdbc.postgresql.org/download.html#current说:

This is the current version of the driver. Unless you have unusual requirements (running old applications or JVMs), this is the driver you should be using. It supports Postgresql 7.2 or newer and requires a 1.4 or newer JVM.

对于 PostgreSQL JDBC 驱动程序,由于修复了错误并添加了功能,因此它们通常只会进入最新版本。较新的 JDBC 驱动程序版本可以识别较旧的服务器版本,并将根据服务器版本正确运行。

请注意,较旧的 JDBC 驱动程序无法识别较新的服务器版本,事实上,使用比服务器版本更旧的 JDBC 驱动程序可能会导致安全问题。

关于java - 可以使用 8.4 和 9.0 postgres( hibernate )库构建一个 .war 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191598/

相关文章:

SQL为每个类别获取1条随机记录

python - PostgreSQL 全文搜索搜索词的权重/优先级

database - PostgreSQL 10 无法在 Linux 的 Windows 子系统上运行的 Ubuntu 18.04 上启动

java - 有什么方法可以使用自定义 BeanWrapper 实现来加载应用程序上下文

java - ChartRenderingInfo 对于图表区域返回 0

java - 这种 AES 加密是否足够安全?

java - Spring 与 Hibernate 和 JPA 集成 - 一张表不是在启动时创建的,其他表是在启动时创建的

java - 为什么我的 native 生成策略不只在 SQL Server 上创建 id?

django - "graphite"用户身份认证失败

java - 除一个数字外的最大值