如何使用Hibernate / JDBC为DB2设置当前架构?

时间:2010-06-01 21:09:00

标签: jdbc schema db2

我以前用过currentSchema = MYSCHEMA;在我的JDBC URL连接中,但我们使用的DB2版本不再支持它,显示错误'目标服务器上不允许“currentSchema”属性'。我尝试过使用hibernate.default_schema,但它并没有自动将模式添加到我的表名中。我不想在每个@Table注释上设置架构,因为我需要在测试和生产之间进行更改。是否有另一种方法来设置连接或通过休眠?

更新:它一定是驱动程序版本问题。我升级到后来的驱动程序,currentSchema工作。

3 个答案:

答案 0 :(得分:32)

使用DB2 JDBC type 4驱动程序( com.ibm.db2.jcc.DB2Driver ),我正在使用此URL进行连接:

jdbc:db2://<HOST>:<PORT>/<DATABASE>:currentSchema=<SCHEMA>;

来源:http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/rjvdsprp.htm

答案 1 :(得分:5)

9.7(最新)数据库的所有属性都在这里......

https://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.apdv.java.doc/doc/r0052607.html

使用:

  

currentSchema

指定用于在动态准备的SQL语句中限定非限定数据库对象的默认模式名称。此属性的值设置数据库服务器上CURRENT SCHEMA专用寄存器中的值。模式名称区分大小写,必须以大写字符指定。

答案 2 :(得分:0)

使用驱动程序'com.ibm.as400.access.AS400JDBCDriver'连接到AS400上的数据库的URL是什么?...'currentSchema'包含在URL中,在这种情况下不起作用...