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

Moi*_*ira 5 java hibernate jdbc maven java-9

我试图使用Hibernate将项目"升级"到Java 9,但是我在使模块正常运行时遇到了问题.

我的相关部分module-info.java看起来像这样:

module test {

    ...

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

}
Run Code Online (Sandbox Code Playgroud)

以及我POM中的相关依赖项

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

问题是,如果我运行该程序,我得到NoClassDefFoundErrorjavax.transaction.SystemException.我看着这一点,很明显,我的模块缺少requiresjavax.transaction.

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

以下是我遇到的问题:如果我java.sql包含此类的模块上添加依赖项,我最终会发生冲突:

模块读取包javax.transaction.xa从两个java.sqljavax.transaction.api

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

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

cyb*_*oft 4

使用1.3版本代替1.2版本javax.transaction-api,在这个版本中javax.transaction.xa已被删除。

Maven 依赖:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)