将模式名称合并到Exasol连接字符串URL的正确方法是什么?

时间:2018-02-27 10:27:51

标签: java hibernate jdbc exasolution

我正在使用Hibernate使用Exasol Hibernate Dialect连接到Exasol数据库。当我使用以下persistence.xml时,一切正常:

  <persistence-unit name="exasol">
    <description>exasol</description>
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <properties>
      <property name="javax.persistence.jdbc.driver" value="com.exasol.jdbc.EXADriver" />
      <property name="javax.persistence.jdbc.url" value="jdbc:exa:192.168.6.11:8563" />
      <property name="javax.persistence.jdbc.user" value="user" />
      <property name="javax.persistence.jdbc.password" value="pass" />
      <property name="hibernate.dialect" value="com.incuda.config.ExasolDialect"/>
      <property name="hibernate.default_schema" value="my_schema" />
    </properties>
  </persistence-unit>

但是现在我不想出于某些内部原因使用以下属性(例如this reason):

  <property name="hibernate.default_schema" value="my_schema" />

并通过在连接字符串URL中合并模式名称来替换它,就像EXASolution User Manual, page 349 (download URL)中建议的那样:

<property name="javax.persistence.jdbc.url" value="jdbc:exa:192.168.6.11:8563;schema=my_schema" />

但是当我这样做时,我得到以下例外:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1967)
    at com.incuda.config.ExasolIdentityColumnSupport.getIdentitySelectString(ExasolIdentityColumnSupport.java:25)

那么,将模式名称合并到Exasol连接字符串URL中的正确方法是什么?

0 个答案:

没有答案