使用hibernate4.3.2+javaEE6.0运行时会报如下错误
Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:781)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3762)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3716)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
at util.HiberUtils.<clinit>(HiberUtils.java:16)
异常的意思是:在javax.persistence.Table这个类中没有找到indexes()方法
研究半天发现是用注解方式生成表的时候 @Table(name = "user", catalog = "forum")就会抛出异常,
我用的是java EE 6.0, 查找javaEE 6.0的api发现没有indexes()这个方法,
然后查阅java EE 7.0的api发现 有indexes()这个方法,
java EE 7.0 API:http://docs.oracle.com/javaee/7/api/
所以要想使用Hibernate 4.3中的@Table注解就需要用java EE 7.0
但是后来经过测试发现将@Table(name = "user", catalog = "forum")改成@Entity(name = "user")错误也就不见了。
还有一个奇怪的问题,如果不用main方法和Junit测试获取session,直接在jsp页面进行CRUD操作就不会抛出异常
解决办法:
方法一:
如果你是WEB开发,则可以忽略这个异常。直接在jsp页面操作
方法二:
将@Table(name = "user", catalog = "forum")改成@Entity(name = "user")
方法三:
将java EE 6.0 换成java EE 7.0
分享到:
相关推荐
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的...
hibernate4.3的jar包全。
spring4.2与Hibernate4.3配置
spring4.0+spring MVC4.0+hibernate4.3框架整合测试案例,支持事务,全注解,配置清晰,基础BaseDao接口实现都已写好,MVC分层,含所有需要的jar包,数据库文件。
JPA数据持久性操作中,通过hibernate实现需要的全部jar包.引入即可.
SpringMVC4.3+Spring+HIbernate4.3简单数据库实例 亲测可用 新建数据库 ssh_person,运行后表自动创建 jdk 8 ,tomcat 8, eclipse 访问 http://localhost:8080/SpringMVC_Spring_Hibernate/
每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明。 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id;...
SSH 框架集成,实现 简单的用户登陆和注册功能(内涵相关jar包 Sping4.1+Struts2.3+Hibernate4.3+MySQL驱动5.1).适合初学SSH框架的学者,供参考和学习。 注:内不包含MySQL数据库的相关表,建议运行环境在JDK 1.7...
hibernate 4.3 参考手册。pdf文档
JAVA的hibernate手动获取session的方法
一下午才整合成功,书中的bulidSessionFactory()方法在hibernate4.3.5中已经deprecated,这里面有方法实现,用完请给好评。
于是我花了几天时间搭建出来的hibernate+springmvc的框架,这个框架去除hibernate配置, 将配置全部整合到spring中,开发中使用注解开发即可,很方便,以后我还会持续更新的。 这是一个maven项目,放在eclipse中,改...
因为@JoinColumn注解表示其所注解的属性将来通过set方法设值后,会与DB中哪个字段相关联。 mappedBy属性表示当前注解的关联属性放弃了维护权,即使执行了set方法将值设置入,其也不会写入到DB中。 也正因为放弃了...
struts2.3 spring4 hibernate4.3 EXTJS4项目,用户管理权限系统。
Struts2.3+Spring4.0+hibernate4.3
@Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。 @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字 @Column —— 注解声明了属性到列的映射。该注解有如下的...
如果使用延迟加载,在读“多端”列表时会出异常,立即加载在得到多端时,是一个空集合(集合元素为0)。 * “一端”配置 * @OneToMany(mappedBy="“多端”的属性") * public List<“多端”类> get“多端”列表(){...
spring4.0+hibernate4.3+freemarker+jquery+extjs4.2 在实现了漂亮的首页,图表拖拉都实现了,这里重点是spring4.0和freemarker的搭建,注意其中的包的变化以及配置的不同 main.view为spring的入口,ext的节目为main...
自己做的项目,基于spring mvc框架,整合了hibernate较新版本,以及需要用到的json包还有用到ueditor前端富文本编辑器的包,十分给力。。组这个包还是花了不少时间。如有问题,欢迎留言交流
NULL 博文链接:https://zhaoshijie.iteye.com/blog/998230