加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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总是在你身边)但谁知道.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读