Я пытаюсь создать таблицу службы HANA, предоставляемой SCP, с учетной записью trail. Следующие коды используют класс com.sap.cloud.sdk.frameworks.liquibase.SchemaPerTenantProvisioner, чтобы подключить арендатора с помощью файла конфигурации Liquibase.
SchemaPerTenantProvisioner schemaProvisioner = new SchemaPerTenantProvisioner(connection, "PATH_TO_CONFIG");
schemaProvisioner.subscribeTenant("TenantID");
Затем возникает исключение и некоторые полезные Сообщения. Подробности ниже.
Exception class: com.sap.db.jdbc.exceptions.JDBCDriverException
Exception Message: SAP DBTech JDBC: [257]: sql syntax error: incorrect syntax near "IF": line 1 col 15 (at pos 15)
Стек вызовов следующим образом.
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257]: sql syntax error: incorrect syntax near "IF": line 1 col 15 (at pos 15)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB._newInstance(SQLExceptionSapDB.java:195)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.newInstance(SQLExceptionSapDB.java:45)
at com.sap.db.jdbc.packet.HReplyPacket._buildExceptionChain(HReplyPacket.java:841)
at com.sap.db.jdbc.packet.HReplyPacket.getSQLExceptionChain(HReplyPacket.java:158)
at com.sap.db.jdbc.packet.HPartInfo.getSQLExceptionChain(HPartInfo.java:39)
at com.sap.db.jdbc.ConnectionSapDB._receive(ConnectionSapDB.java:4214)
at com.sap.db.jdbc.ConnectionSapDB.exchange(ConnectionSapDB.java:1660)
at com.sap.db.jdbc.PreparedStatementSapDB._prepare(PreparedStatementSapDB.java:2733)
at com.sap.db.jdbc.PreparedStatementSapDB._doParse(PreparedStatementSapDB.java:2615)
at com.sap.db.jdbc.PreparedStatementSapDB.<init>(PreparedStatementSapDB.java:156)
at com.sap.db.jdbc.HanaPreparedStatement.<init>(HanaPreparedStatement.java:42)
at com.sap.db.jdbc.HanaPreparedStatementFinalize.<init>(HanaPreparedStatementFinalize.java:39)
at com.sap.db.jdbc.HanaPreparedStatementFinalize.newInstance(HanaPreparedStatementFinalize.java:23)
at com.sap.db.jdbc.ConnectionSapDB._prepareStatement(ConnectionSapDB.java:2390)
at com.sap.db.jdbc.ConnectionSapDB.prepareStatement(ConnectionSapDB.java:289)
at com.sap.cloud.sdk.frameworks.liquibase.SchemaPerTenantProvisioner.subscribeTenant(SchemaPerTenantProvisioner.java:113)
at com.sap.cloud.s4hana.examples.addressmgr.TenantProvisioningServlet.doPut(TenantProvisioningServlet.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:663)
at com.sap.cloud.s4hana.examples.addressmgr.util.HttpServlet.service(HttpServlet.java:15)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextServletFilter.lambda$doFilter$0(RequestContextServletFilter.java:171)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextCallable.call(RequestContextCallable.java:95)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextServletFilter.doFilter(RequestContextServletFilter.java:173)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpCachingHeaderFilter.doFilter(HttpCachingHeaderFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpSecurityHeadersFilter.doFilter(HttpSecurityHeadersFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at com.sap.xs.security.container.XSSecurityAuthenticator.invoke(XSSecurityAuthenticator.java:134)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at com.sap.xs.java.valves.ErrorReportValve.invoke(ErrorReportValve.java:66)
at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at com.sap.xs.jdbc.datasource.valve.JDBCValve.invoke(JDBCValve.java:62)
at com.sap.xs.security.UserInfoValve.invoke(UserInfoValve.java:19)
at com.sap.xs.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:43)
at com.sap.xs.logging.catalina.RuntimeInfoValve.invoke(RuntimeInfoValve.java:40)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:836)
Дополнительное полезное сообщение:
WARNING 3/13/20 5:18 AM: liquibase: Unknown database: HDB
Просмотр исходных кодов com.sap.cloud .sdk.frameworks.liquibase.SchemaPerTenantProvisioner, внутри которого есть несколько кодов, на которые указывает сообщение об исключении.
final PreparedStatement statement =
connection.prepareStatement("CREATE SCHEMA IF NOT EXISTS \"" + schemaName + "\"")
Кажется, этот оператор не может быть распознан. Вот больше информации из информации о Hibernate.
HHH000401: using driver [null] at URL [jdbc:sap://zeus.hana.prod.eu-central-1.whitney.xxxx.ondemand.com:23803/null?user=...
HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
HHH000412: Hibernate Core {4.3.0.Final}
HHH000206: hibernate.properties not found
HHH000021: Bytecode provider name : javassist
HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
HHH000402: Using Hibernate built-in connection pool (not for production use!)
HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
HHH000397: Using ASTQueryTranslatorFactory
HHH000400: Using dialect: org.hibernate.dialect.HANAColumnStoreDialect
Кстати, я ищу весь проект, javax.persistence.spi.PersistenceProvider вообще не используется. Мне интересно, почему появляется первое предупреждение.
Вот мой pom. xml, относящийся к Cloud SDK и Persistency.
<!-- S/4 Cloud SDK -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.sap.cloud.s4hana</groupId>
<artifactId>sdk-bom</artifactId>
<version>2.28.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>com.sap.cloud.s4hana.cloudplatform</groupId>
<artifactId>scp-cf</artifactId>
</dependency>
<dependency>
<groupId>com.sap.cloud.s4hana</groupId>
<artifactId>s4hana-all</artifactId>
</dependency>
<!-- Persistency -->
<dependency>
<groupId>com.sap.cloud.s4hana.frameworks</groupId>
<artifactId>liquibase</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sap.hana.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-hana-service-connector</artifactId>
<version>1.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sap.cloud.db.jdbc</groupId>
<artifactId>ngdbc</artifactId>
<version>2.4.70</version>
<scope>test</scope>
</dependency>
Есть идеи о том, что отсутствует / неверно?