首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复javax.persistence.Table.indexes()[Ljavax/persistence/Index?

如何修复javax.persistence.Table.indexes()[Ljavax/persistence/Index?
EN

Stack Overflow用户
提问于 2019-07-17 09:12:15
回答 1查看 871关注 0票数 1

我正在用JSF开发一个应用程序。错误是:

代码语言:javascript
复制
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:1087)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:767)
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:245)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:222)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:265)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
    at w7h5.h8.sf.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:26)
    at w7h5.h8.transaction.TransactionalModule.invoke(TransactionalModule.java:29)
    at abrain.web.common.bean.EditorView.test_post(EditorView.java:112)
    at abrain.web.common.bean.EditorView.setText(EditorView.java:63)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at javax.el.BeanELResolver.setValue(BeanELResolver.java:122)
    ... 43 more

这个应用程序就像一个社交网络,当我想保存一个新的帖子时,这个错误就会发生。提供此功能的方法是:

代码语言:javascript
复制
public void test_post(String testo, String username){

        W7H5 w7db = W7DBS.getInstance();
        Post post=new Post();
        Timestamp data=new Timestamp(System.currentTimeMillis());
        UtentiSocial creatore=new UtentiSocial();
        creatore.setUsername(username);
        post.setCreatore(creatore);

        post.setTesto(testo);
        post.setDatacreazione(data);
        post.setCancellato(false);

        w7db.savePost(post);


        System.out.println("eseguito: " + "testo: "+ testo + "username " + username + "data " + data);


    }

我尝试创建一个java类测试,用于不传递Tomcat (版本8.5),并且所有测试都正常工作,因此,当我在服务器上运行应用程序时,就会出现这个问题。

我正在使用:

  • hibernate-commons-annotations-5.0.1.Final.jar
  • hibernate-core-5.1.0.Final.jar
  • hibernate-jpa-2.1-api-1.0.0.Final.jar
  • hibernate-spatial-5.1.0.Final.jar
  • hibernate-validator-5.2.4.Final.jar

  • java版本"1.8.0_31“
  • Java(TM) SE运行时环境(build 1.8.0_31-b13)
  • Java HotSpot(TM) 64位服务器VM (build 25.31-b07,混合模式)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-17 20:39:20

第一个图像是javax.persistence.jar接口表的源代码。如您所见,没有方法indexes()

第二个图像是jpa-2.1.jar接口表的源代码。并提出了indexes()方法。

在我看来,也许你有两个罐子在你的类路径,这会造成冲突。当您调用javax.persistence.Table时,我们不知道它是来自javax.persistence.jar还是jpa-2.1.jar的接口。

查看类路径并删除javaxpersistence.jar,然后再试一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57072392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档