NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index

musubi

I have a Play Framework application and I was using Hibernate 4.2.5.Final (which is retrieved via the Maven dependency manager). I decided to upgrade to Hibernate 4.3.0.Final, recompile my application successfully, and ran it.

I got the exception below, and haven't been able to figure out why. I downgraded back to 4.2.5 and this issue did not occur. I then, tried upgrading Hibernate with each Final release after 4.2.5. That is, I went from 4.2.5.Final to 4.2.6.Final, to 4.2.7.Final, to 4.2.8.Final and then to 4.3.Final. The issue does not occur until I upgrade to 4.3.0.Final.

Java version information

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

And exception:

play.api.UnexpectedException: Unexpected exception[NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:152) ~[play_2.10.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1]
    at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:110) ~[play_2.10.jar:2.2.1]
    at scala.util.Success.flatMap(Try.scala:200) ~[scala-library.jar:na]
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:781) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3762) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3716) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
hcura

I've ran into the same problem. The question here is that play-java-jpa artifact (javaJpa key in the build.sbt file) depends on a different version of the spec (version 2.0 -> "org.hibernate.javax.persistence" % "hibernate-jpa-2.0-api" % "1.0.1.Final").

When you added hibernate-entitymanager 4.3 this brought the newer spec (2.1) and a different factory provider for the entitymanager. Basically you ended up having both jars in the classpath as transitive dependencies.

Edit your build.sbt file like this and it will temporarily fix you problem until play releases a new version of the jpa plugin for the newer api dependency.

libraryDependencies ++= Seq(
javaJdbc,
javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)

This is for play 2.2.x. In previous versions there were some differences in the build files.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Error creating bean entityManagerFactory, NoSuchMethodError: javax/persistence/Table.indexes

From Dev

Error creating bean entityManagerFactory, NoSuchMethodError: javax/persistence/Table.indexes

From Dev

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

From Dev

Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

From Dev

Spring : java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

From Dev

Getting NoSuchMethodError: javax.persistence.Table.indexes() while performing JPA query

From Dev

NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()

From Dev

java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey

From Dev

java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

From Dev

Spring boot Hibernate error java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

From Dev

Tomcat but not Jetty: NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey

From Dev

Spring boot Hibernate error java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

From Dev

java.lang.NoSuchMethodError: javax.persistence.JoinTable.indexes()[Ljavax/persistence/Index;

From Dev

weblogic.management.DeploymentException: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()

From Dev

javax.persistence @Column mapping of 2 columns of two different table

From Dev

java.lang.NoSuchMethodError: javax.persistence.EntityManager.setProperty(Ljava/lang/String;Ljava/lang/Ob ject;)V

From Dev

javax.persistence.TransactionRequiredException:

From Dev

ejb3 persistence and javax persistence jar files in classpath?

From Dev

javax.persistence.PersistenceException: Invalid persistence.xml

From Dev

javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode() Ljavax/persistence/SharedCacheMode;

From Dev

javax.persistence.PersistenceException: Unable to locate persistence units

From Dev

javax.persistence.PersistenceException: No Persistence provider for EntityManager named

From Dev

javax.persistence.PersistenceException: No Persistence provider for EntityManager named XX

From Dev

Why JPA uses javax.persistence.NoResultException

From Dev

Maven dependencies regarding javax.persistence JAR?

From Dev

No qualifying bean of type [javax.persistence.EntityManager]

From Dev

Eclipse Warnings: class javax.persistence.* not found

From Dev

playframework - package javax.persistence does not exist

From Dev

javax.persistence.TransactionRequiredException: No transactional EntityManager available

Related Related

  1. 1

    Error creating bean entityManagerFactory, NoSuchMethodError: javax/persistence/Table.indexes

  2. 2

    Error creating bean entityManagerFactory, NoSuchMethodError: javax/persistence/Table.indexes

  3. 3

    java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

  4. 4

    Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

  5. 5

    Spring : java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

  6. 6

    Getting NoSuchMethodError: javax.persistence.Table.indexes() while performing JPA query

  7. 7

    NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()

  8. 8

    java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey

  9. 9

    java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

  10. 10

    Spring boot Hibernate error java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

  11. 11

    Tomcat but not Jetty: NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey

  12. 12

    Spring boot Hibernate error java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

  13. 13

    java.lang.NoSuchMethodError: javax.persistence.JoinTable.indexes()[Ljavax/persistence/Index;

  14. 14

    weblogic.management.DeploymentException: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()

  15. 15

    javax.persistence @Column mapping of 2 columns of two different table

  16. 16

    java.lang.NoSuchMethodError: javax.persistence.EntityManager.setProperty(Ljava/lang/String;Ljava/lang/Ob ject;)V

  17. 17

    javax.persistence.TransactionRequiredException:

  18. 18

    ejb3 persistence and javax persistence jar files in classpath?

  19. 19

    javax.persistence.PersistenceException: Invalid persistence.xml

  20. 20

    javax.persistence.spi.PersistenceUnitInfo.getSharedCacheMode() Ljavax/persistence/SharedCacheMode;

  21. 21

    javax.persistence.PersistenceException: Unable to locate persistence units

  22. 22

    javax.persistence.PersistenceException: No Persistence provider for EntityManager named

  23. 23

    javax.persistence.PersistenceException: No Persistence provider for EntityManager named XX

  24. 24

    Why JPA uses javax.persistence.NoResultException

  25. 25

    Maven dependencies regarding javax.persistence JAR?

  26. 26

    No qualifying bean of type [javax.persistence.EntityManager]

  27. 27

    Eclipse Warnings: class javax.persistence.* not found

  28. 28

    playframework - package javax.persistence does not exist

  29. 29

    javax.persistence.TransactionRequiredException: No transactional EntityManager available

HotTag

Archive