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

Sco*_*den 5 java postgresql hibernate 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>
Run Code Online (Sandbox Code Playgroud)

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

也许它更像是一个maven问题而不是其他任何问题,但我似乎无法看到任何与我的情况有关的问题.我确实找到了这个,但是它的旧版Hibernate 3.5不再适用了.

kgr*_*ttn 5

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

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

这是驱动程序的当前版本.除非您有不寻常的要求(运行旧应用程序或JVM),否则这是您应该使用的驱动程序.它支持Postgresql 7.2或更高版本,需要1.4或更高版本的JVM.

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

需要注意的是较旧的JDBC驱动程序都没有意识到新的服务器版本,而事实上,你可以通过使用JDBC驱动程序比服务器版本旧造成安全问题.