1

I am getting error when executing below code, could you please help me in resolving this error

public fun getEntityManager(): EntityManager {
    val tm: TransactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager()
  
    val emf: EntityManagerFactory = Persistence.createEntityManagerFactory(
            "mongo-ogm")
    tm.begin()
   return emf.createEntityManager()
}

Caused by: java.lang.NoSuchFieldError: FSYNCED at org.hibernate.ogm.datastore.mongodb.options.WriteConcernType.(WriteConcernType.java:37) at org.hibernate.ogm.datastore.mongodb.options.impl.WriteConcernOption.(WriteConcernOption.java:29) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at java.base/java.lang.Class.newInstance(Class.java:584) at org.hibernate.ogm.options.navigation.source.impl.ConfigurationOptionValueSource$ConfigurationBasedOptionContainer.getAll(ConfigurationOptionValueSource. java:82)

<persistence-unit name="mongo-ogm" transaction-type="JTA">
    <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>

    <class>com.ogm.model.UserEntity</class>
    <properties>
        
        <property name="hibernate.ogm.datastore.provider" value="mongodb"/>
        <property name="hibernate.ogm.datastore.database" value="demo"/>
        <property name="hibernate.ogm.mongodb.host" value="localhost"/>
        <property name="hibernate.ogm.mongodb.username" value=""/>
        <property name="hibernate.ogm.mongodb.password" value=""/>
      <!--  <property name="" value="localhost"/>-->
        <property name="hibernate.search.default.directory_provider" value="filesystem"/>
        <property name="hibernate.search.default.indexBase" value="/tmp/.hibernate_ogm_demo_luceneindexes"/>
    </properties>

</persistence-unit>
implementation("org.hibernate.ogm:hibernate-ogm-mongodb:5.4.1.Final")
implementation("org.mongodb:mongodb-driver-reactivestreams:4.0.5")
implementation("org.jboss.narayana.jta:narayana-jta:5.8.1.Final")
implementation("org.jboss:jboss-transaction-spi:7.6.0.Final")

1 Answers1

0

Usually this issue occurs when you have dependency mismatch. I suspect you have more than one version of hibernate-ogm-mongodb in you classpath.

hibernate-ogm-mongodb:5.4.1.Final contains enum WriteConcernType.FSYNCED(WriteConcern.FSYNCED)

  1. Run gradle dependencies | grep hibernate-ogm-mongodb, verify if you have more than one version of the library as dependency.
  2. Exclude older/other versions from other dependencies in your build.gradle file.
Traycho Ivanov
  • 2,887
  • 14
  • 24