【发布时间】:2019-11-26 02:00:07
【问题描述】:
我正在用 JSF 开发一个应用程序。 错误是:
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
此应用程序就像一个社交网络,当我想保存新帖子时会发生此错误。 提供此功能的方法是:
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 运行时环境(内部版本 1.8.0_31-b13)
- Java HotSpot(TM) 64 位服务器 VM(内部版本 25.31-b07,混合模式)
【问题讨论】:
-
你用的是什么hibernate版本?
-
这似乎与 JSF 无关。它根本无法初始化 Hibernate SessionFactory。
-
@Selaron 不幸的是不一样,我不使用 sbt。
-
@RayLloy 我在描述中添加了更多信息