scala – 在SAP HANA中选择Hibernate抛出错误:`不支持com.sap.d
发布时间:2020-12-16 08:55:36 所属栏目:安全 来源:网络整理
导读:我有下表: CREATE column TABLE banks ( sk tinyint NOT NULL GENERATED BY DEFAULT AS IDENTITY,code varchar(10) DEFAULT NULL,name varchar(100) DEFAULT NULL,version smallint DEFAULT NULL,PRIMARY KEY (sk)); 我尝试使用以下代码选择表的行(在Scala
我有下表:
CREATE column TABLE banks ( sk tinyint NOT NULL GENERATED BY DEFAULT AS IDENTITY,code varchar(10) DEFAULT NULL,name varchar(100) DEFAULT NULL,version smallint DEFAULT NULL,PRIMARY KEY (sk) ); 我尝试使用以下代码选择表的行(在Scala中): import scala.collection.JavaConverters._ object Test extends App { val session = HibernateUtil.sessionFactory.openSession val q = session.createQuery("from BankHib ") val list2 = q.list // <-- code breaks here session.close } 使用以下实体定义: @Entity @Table(name = "banks") class BankHib { @Id var sk: Int = _ var code: String = _ var name: String = _ var version: Int = _ } 以及获取会话工厂的实用程序: object HibernateUtil { val sessionFactory = buildSessionFactory def buildSessionFactory = { try { new Configuration().configure().buildSessionFactory(); } catch {case ex:Throwable => println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } def shutdown { sessionFactory.close } } 当我运行Test对象时,我得到以下异常: Caused by: com.sap.db.jdbc.exceptions.SQLFeatureNotSupportedExceptionSapDB: Method unwrap of com.sap.db.jdbc.CallableStatementSapDBFinalize is not supported. at com.sap.db.jdbc.exceptions.SQLExceptionSapDB._createException(SQLExceptionSapDB.java:155) at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateSQLException(SQLExceptionSapDB.java:26) at com.sap.db.jdbc.WrapperDummy.unwrap(WrapperDummy.java:25) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:64) ... 26 more 有什么问题以及如何解决?什么是不支持的功能? 解决方法
异常从最近修改过的hibernate代码开始.
链接的问题是这一个:https://hibernate.atlassian.net/browse/HHH-10256 更改是在hibernate 5.2.8上.因此,如果您使用的是5.2.8版本(显然您指的是5.2.10版本的错误),您是否可以尝试降级到5.2.7? 我很担心,因为很老的sap驱动程序似乎可以使用旧代码.如果较新的hana驱动程序有新代码问题,很难找到hibernate版本和sap驱动程序版本之间的正确匹配. 如果你有5.2.7和5.2.10的例外,你将不得不重新打开休眠问题. 而且你也得到了SAP对hana的支持(如果你使用hana,你已经付出了代价),所以请联系他们以获得更好的驱动程序以正确支持JDBC.他们可能甚至不回答(你支付产品,不是告诉他们有bug,这个bug总是在你身边)但谁知道. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |