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

Bri*_*ing 14 db2 schema jdbc

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

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

STB*_*and 35

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

jdbc:db2://<HOST>:<PORT>/<DATABASE>:currentSchema=<SCHEMA>;
Run Code Online (Sandbox Code Playgroud)

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

  • 对于那些将使用此解决方案的人,不要忘记最后的分号,否则你会得到一个错误代码= -4461这是非常重要的我因为一个愚蠢的错误而失去了很多时间来调查这个lol jjst (6认同)
  • 这个答案让我很开心,我可以哭 (2认同)

Rom*_*eau 6

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专用寄存器中的值.模式名称区分大小写,并且必须以大写字符指定.