Java 9,Hibernate和java.sql / javax.transaction

时间:2018-01-13 20:51:09

标签: java hibernate maven jdbc java-9

我已经尝试升级"使用Hibernate到Java 9的项目,但是我在使模块正常运行时遇到了问题。

module-info.java的相关部分如下所示:

module test {

    ...

    requires java.base;
    requires hibernate.core;
    requires javax.transaction;
    requires java.sql;

}

和我的POM中的相关依赖项是

  • org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec,2.0.0.Alpha1
  • org.hibernate:hibernate-core,5.2.12.Final
  • javax.transaction:javax.transaction-api,1.2

问题是,如果我运行该程序,我会NoClassDefFoundError获得javax.transaction.SystemException。我调查了这一点,很显然,my module is missing a requires on javax.transaction

所以我在javax.transaction-api上添加了一个模块依赖项。然后我继续尝试再次运行该程序 - 现在我错过了java.sql.SQLException

以下是我遇到的问题:如果我add a dependency on the module java.sql包含此类,我最终会发生冲突:

  

模块从javax.transaction.xajava.sql

中读取包javax.transaction.api

java.sqljavax.transaction.api包含不同的套餐,并且有一个共同点(javax.transaction.xa),,但我需要所有这些

我该如何处理?我有什么简单的遗失吗?

1 个答案:

答案 0 :(得分:3)

使用版本1.3而不是javax.transaction-api的1.2,此版本javax.transaction.xa已被删除。

Maven依赖:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>