java – 使用Jadiru Joda / Hibernate持久用户类型时的AbstractMethodError
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用Jadiru Joda / Hibernate持久用户类型时的AbstractMethodError,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5619字,纯文字阅读大概需要9分钟。
内容图文
![java – 使用Jadiru Joda / Hibernate持久用户类型时的AbstractMethodError](/upload/InfoBanner/zyjiaocheng/826/a8aba58c92a24e5f8416ad513bb092cb.jpg)
我已经在我的用户的MySQL TIMESTAMP类型数据库中引入了一个“创建”列.我正在尝试使用Jadiru的UserType Hibernate映射器将其映射到Joda LocalDateTime.我使用的是UserType类的v2.0,我尝试过使用v 3.6.0和3.6.7的Hibernate.我正在使用JDK 1.6.此数据访问层正用作Spring 3 Web应用程序的一部分.
这是我的持久性对象的相关位 –
@Column(name = "created")
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private LocalDateTime created;
没有什么太复杂,但每当我的UserDAO试图查询表时,我得到以下异常 –
java.lang.AbstractMethodError: org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime.nullSafeGet(Ljava/sql/ResultSet;[Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:109)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:104)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
at org.hibernate.loader.Loader.getRow(Loader.java:1355)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
at org.hibernate.loader.Loader.doQuery(Loader.java:829)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2533)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:921)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:1)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:908)
at com.vox.dao.UserDAO.getUser(UserDAO.java:27)
at com.vox.security.DashboardAuthenticationProcessingFilter.successfulAuthentication(DashboardAuthenticationProcessingFilter.java:30)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:637)
我已经尝试将所有注释放在方法而不是字段上,但同样的问题.
我也尝试将不同的列类型(如DATE)映射到LocalDate,将TIME映射到LocalTIME,但每个列类型都会产生类似的错误.
我尝试的另一件事是使用条件查询而不是基于模板的查询.这并没有影响到这个问题.
我已经检查了重复库的类路径,但似乎没有.
我的设置显然有些问题,因为UserType文档说这应该可行.没有谷歌任何人都会遇到这个错误.请有人指出我正确的方向吗?
谢谢,
担
解决方法:
不是解决方案而是指针/提示:nullSafeGet的签名看起来很奇怪.它应该是
public T nullSafeGet(ResultSet resultSet,
String[] strings,
org.hibernate.engine.spi.SessionImplementor session,
Object object)
throws SQLException
但是hibernate在没有SessionImplementor参数的情况下调用nullSafeGet.因此,实际的CustomType类可能会定义一个抽象的nullSafeGet方法,该方法未在实际的实现者PersistentLocalDateTime中实现(它只是实现了一个具有不同参数的方法)
也许您的joda和hibernate版本不兼容.我再次调查那个方向.
内容总结
以上是互联网集市为您收集整理的java – 使用Jadiru Joda / Hibernate持久用户类型时的AbstractMethodError全部内容,希望文章能够帮你解决java – 使用Jadiru Joda / Hibernate持久用户类型时的AbstractMethodError所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。