Scala 如何使用doobie连接到蜂巢

Scala 如何使用doobie连接到蜂巢,scala,jdbc,hive,doobie,Scala,Jdbc,Hive,Doobie,hive有一个jdbc驱动程序,但似乎没有完全运行。我使用默认的doobie Transactior连接到它,就像 val xa = Transactor.fromDriverManager[IO]( "org.apache.hive.jdbc.HiveDriver", url, username, pass ) myQuery.transact(xa).unsafeRunSync 我收到一条错误信息 [错误]线程“main”java.sql.SQLFeatureNotSupported

hive有一个jdbc驱动程序,但似乎没有完全运行。我使用默认的doobie Transactior连接到它,就像

val xa = Transactor.fromDriverManager[IO](
  "org.apache.hive.jdbc.HiveDriver", url, username, pass
)

myQuery.transact(xa).unsafeRunSync
我收到一条错误信息

[错误]线程“main”java.sql.SQLFeatureNotSupportedException中出现异常:不支持方法 [错误]位于org.apache.hive.jdbc.HiveConnection.rollback(HiveConnection.java:1327) [错误]位于doobie.free.kleislieinterpreter$ConnectionInterpreter$$anonfun$rollback$1.apply(kleislieinterpreter.scala:643) [错误]位于doobie.free.kleislieinterpreter$ConnectionInterpreter$$anonfun$rollback$1.apply(kleislieinterpreter.scala:643) [错误]位于doobie.free.kleislieinterpreter$$anonfun$primitive$1$$anonfun$apply$1.apply(kleislieinterpreter.scala:99)

如何使用Doobie连接到蜂巢

您需要通过新策略禁用事务处理程序中的“after”和“oops”。 这里是如何

    import doobie.free.connection.unit
    import doobie.util.transactor.Strategy

    val hiveStrategy = Strategy.default.copy(
                        after = unit, oops = unit)

    val xa = Transactor.strategy.set(
               Transactor.fromDriverManager[IO](
                 "org.apache.hive.jdbc.HiveDriver", url, username, pass), 
               hiveStrategy)

    myQuery.transact(xa).unsafeRunSync