`

hibernate4 问题篇(二)javax.persistence.Table.indexes()不存在

阅读更多

    在使用Hibernate注解做映射时,遇到了一个问题:

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

    按照以往的经验通常有几个方向来思考这个问题,其一是少引入了jar包,其二jar包引入了,但是可能版本比较低,还有一种是jar包多引入了,引起了jar包的冲突,低版本和合适版本的都引入了,编译器不知道该使用哪个jar包,这样也会造成上面的原因。

    很快排除了上面的第一个原因,通过查询发现Hibernate4.3.11有一个比较重要的特性对JPA2.1的支持,通过查询得知J2EE 7.0才开始支持JPA2.1,开发工具采用的是MyEclipse10.0.7,这个版本并不支持J2EE7.0,最初想到一种解决问题思路,如何引入J2EE 7.0 Libraries,顺着这个问题,但是没有成功,后来选择直接在构建路径中移除了J2EE5.0Libraries,结果采用main方法进行测试创建SessionFactory对象成功了,而且在Java实体类上的注解也没有报错,所以猜测是因为引入的低版本的jar包,而且这个jar包就存在J2EE5.0Libraries中与hibernate框架中的jar包引起了冲突。

     最终的解决方案移除 J2EE5.0 Libraries,或者为工具引入 支持JPA2.1的 J2EE 7.0 Libraries,可能是因为MyEclipse工具优先使用Myeclipse中jar包,而且Hibernate框架中有JPA2.1的jar包hibernate-jpa-2.1-api-1.0.0.Final.jar

      猜想: 框架中hibernate-jpa-2.1-api-1.0.0.Final.jar已经包含javax.persistence包中注解了。 J2EE5.0 Libraries的javax.persistence是按照jpa2.0标准定义的注解 ,这两个jar包产生了冲突,这是我个人的理解也许不完全正确但是通过移除冲突jar包的解决这个问题来看至少可以佐证我的想法。

分享到:
评论

相关推荐

    javax.persistence.jar

    Files contained in javax.persistence.jar: META-INF/MANIFEST.MF javax.persistence.Access.class javax.persistence.AccessType.class javax.persistence.AssociationOverride.class javax.persistence....

    javax.persistence.Entity 的jar包文件

    在更现代的项目中,通常会使用JPA 2.x,对应的jar包可能是`javax.persistence-api.jar`或者其他JPA供应商的实现库,如Hibernate的`hibernate-entitymanager.jar`。如果项目依赖EclipseLink,确保添加了完整的Eclipse...

    javax.persistence.jar.zip

    【javax.persistence.jar.zip】是一个包含Java持久化API(Java Persistence API,简称JPA)的压缩文件,这个API是Java EE(Enterprise Edition)平台的核心组成部分,主要用于处理Java对象与数据库之间的映射关系,...

    javax.persistence-2.0.0.jar 包

    《Java持久化API(JPA)2.0详解——基于javax.persistence-2.0.0.jar包》 Java持久化API(Java Persistence API,简称JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java应用程序提供了一种对象/...

    JPA规范注解的javax.persistence包

    在`javax.persistence`包中,有几个核心的注解,包括但不限于: 1. `@Entity`:标记一个Java类为数据库中的实体表。每个@Entity表示一个数据库表,类的实例对应于表中的记录。 2. `@Table`:用于指定实体对应的...

    javax.persistence-api-2.2.jar

    javax.persistence-api-2.2.jar框架包,仅供大家学习使用,谢谢!

    ejb3-persistence(找不到javax.persistence.Entity问题解决)

    “Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity”,查找资料发现是缺少jar包. 添加此包就OK了。 更多说明:https://blog.csdn.net/kingmax54212008/article/details/82762624

    javax.persistence

    是一个javax.persistence java资源注解

    javax.persistence-2.0.0.jar

    javax.persistence-2.0.0.jar 解决Hibernate JPA不兼容问题。

    JPA2.0 javax.persistence src 源码

    `javax.persistence`包是JPA的核心API,包含了一系列接口和注解,用于定义实体、查询语言以及与数据存储交互的策略。 1. **实体管理**:在JPA中,实体是数据库表的映射,由`@Entity`注解标识。`EntityManager`接口...

    standalong javax.persistence包

    下载后,执行:java -jar glassfish-persistence-installer-v2.1-b23.jar 把得到的toplink-essentials.jar放在classpath下就可以用了! 在这里可以找到原码:...

    com.springsource.javax.persistence-2.0.0.jar.zip

    在Java开发领域,持久层框架的使用是不可或缺的,而javax.persistence则是Java持久化API(JPA)的核心部分,用于规范对象关系映射(ORM)的标准。SpringSource作为一个知名的开源项目,提供了对JPA的全面支持。本文...

    javax.persistence-2.0.5.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.0.5/javax.persistence-2.0.5.jar

    javax.persistence-2.2.1.jar

    基于git事务82dd749的javax.persistence构建 org.eclipse.persistence/javax.persistence/2.2.1/javax.persistence-2.2.1.jar

    javax persistence规范注解的包.rar

    在描述中提到的问题,很可能是由于项目中缺少了`javax.persistence`相关的jar包导致程序运行时出现错误。 `javax.persistence`规范中的核心注解包括: 1. `@Entity`: 这个注解标记一个Java类为实体类,它是ORM...

    javax.jms.jar

    Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...

    javax.jms.jar下载

    javax.jms.BytesMessage.class javax.jms.Connection.class javax.jms.ConnectionConsumer.class javax.jms.ConnectionFactory.class javax.jms.ConnectionMetaData.class javax.jms.DeliveryMode.class javax.jms....

Global site tag (gtag.js) - Google Analytics