Code:
package common;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import regulation.config.PathSet;
import regulation.regulation.Regulation;
public class BaseHibernateDaoSupport extends HibernateDaoSupport
{
protected List getPagedList(String queryName, Map parameterMap, int page, Class className)
{
Session session = getSessionFactory().openSession();
Query query = session.createQuery(queryName);
Iterator iter = (parameterMap.entrySet().iterator());
Map.Entry entry = null;
while(iter.hasNext())
{
entry = (Map.Entry)iter.next();
query.setParameter((String)entry.getKey(), entry.getValue(),
Hibernate.entity(Regulation.class));
}
query.setFirstResult((page - 1) * pageSize).setMaxResults(pageSize);
return query.list();
}
}
it's causes me an error.
and I don't get any errors with this code:
query.setParameter((String)entry.getKey(), entry.getValue())[/i][/b];
and this is my entire stack trace
Code:
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@4c1] in DispatcherServlet with name 'NavyRegulation'
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - Looking up handler for [/viewRegulation1.html]
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Testing handler adapter [org.springframework.web.servlet.mvc.SimpleRequestHandlerAdapter@4c2]
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@4c3]
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver] - Returning handler method name 'viewRegulation1Handler' for lookup path: /viewRegulation1.html
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Last-Modified value for [/NavyRegulation/viewRegulation1.html] is [-1]
2006-05-30 15:14:52,953 DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet with name 'NavyRegulation' received request for [/NavyRegulation/viewRegulation1.html]
2006-05-30 15:14:52,968 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Bound request context to thread: com.evermind.server.http.EvermindHttpServletRequest@4c4
2006-05-30 15:14:52,968 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Testing handler adapter [org.springframework.web.servlet.mvc.SimpleRequestHandlerAdapter@4c2]
2006-05-30 15:14:52,968 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@4c3]
2006-05-30 15:14:52,968 DEBUG [org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver] - Returning handler method name 'viewRegulation1Handler' for lookup path: /viewRegulation1.html
2006-05-30 15:14:52,984 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] - Getting transaction for regulation.regulation.RegulationDao.getRegulationList
2006-05-30 15:14:53,000 INFO [org.springframework.jdbc.datasource.JdbcTransactionObjectSupport] - JDBC 3.0 Savepoint class is available
2006-05-30 15:14:53,000 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Using transaction object [org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject@4c6]
2006-05-30 15:14:53,000 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Creating new transaction with name [regulation.regulation.RegulationDao.getRegulationList]
2006-05-30 15:14:53,031 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Opened new Session [org.hibernate.impl.SessionImpl@4c7] for Hibernate transaction
2006-05-30 15:14:53,031 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Preparing JDBC Connection of Hibernate Session [org.hibernate.impl.SessionImpl@4c7]
2006-05-30 15:14:53,046 DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - Setting JDBC Connection [1227(oracle.jdbc.driver.T4CConnection@4cc)] read-only
2006-05-30 15:14:53,046 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] - Bound value [org.springframework.orm.hibernate3.SessionHolder@4ce] for key [org.hibernate.impl.SessionFactoryImpl@4cf] to thread [ApplicationServerThread-0]
2006-05-30 15:14:53,046 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] - Initializing transaction synchronization
2006-05-30 15:14:53,296 DEBUG [org.hibernate.SQL] - select * from ( select regulation0_.id as id0_, regulation0_.class as class0_ from regulations_tbl regulation0_ where regulation0_.class=? order by no ) where rownum <= ?
2006-05-30 15:14:53,656 ERROR [org.hibernate.property.BasicPropertyAccessor] - IllegalArgumentException in class: regulation.regulation.Regulation, getter method of property: id
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute] - Applying rules to determine whether transaction should rollback on org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of regulation.regulation.Regulation.id
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute] - Winning rollback rule is: null
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute] - No relevant rollback rule found: applying superclass default
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] - Invoking rollback for transaction on regulation.regulation.RegulationDao.getRegulationList due to throwable [org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of regulation.regulation.Regulation.id]
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Triggering beforeCompletion synchronization
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Initiating transaction rollback
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Rolling back Hibernate transaction on Session [org.hibernate.impl.SessionImpl@4c7]
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Triggering afterCompletion synchronization
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] - Clearing transaction synchronization
2006-05-30 15:14:53,671 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] - Removed value [org.springframework.orm.hibernate3.SessionHolder@4ce] for key [org.hibernate.impl.SessionFactoryImpl@4cf] from thread [ApplicationServerThread-0]
2006-05-30 15:14:53,671 DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - Resetting read-only flag of JDBC Connection [1227(oracle.jdbc.driver.T4CConnection@4cc)]
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.HibernateTransactionManager] - Closing Hibernate Session [org.hibernate.impl.SessionImpl@4c7] after transaction
2006-05-30 15:14:53,671 DEBUG [org.springframework.orm.hibernate3.SessionFactoryUtils] - Closing Hibernate Session
2006-05-30 15:14:53,671 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Cleared thread-bound request context: com.evermind.server.http.EvermindHttpServletRequest@4c4
2006-05-30 15:14:53,687 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Could not complete request
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of regulation.regulation.Regulation.id
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
at org.hibernate.tuple.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:176)
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3257)
at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:2983)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:215)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:77)
at org.hibernate.loader.hql.QueryLoader.bindNamedParameters(QueryLoader.java:491)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:307)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at common.BaseHibernateDaoSupport.getPagedList(BaseHibernateDaoSupport.java:36)
at regulation.regulation.RegulationDaoImpl.getRegulationList(RegulationDaoImpl.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:288)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:100)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
at $Proxy3.getRegulationList(Unknown Source)
at regulation.controller.RegulationController.viewRegulation1Handler(RegulationController.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:433)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:371)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:796)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:727)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:351)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at regulation.KoreanFilter.doFilter(KoreanFilter.java:31)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:629)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: this is not an instance of the method's owning class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
... 62 more
2006-05-30 15:14:53,687 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] - Publishing event in context [WebApplicationContext for namespace 'NavyRegulation-servlet']: ServletRequestHandledEvent: url=[/NavyRegulation/viewRegulation1.html]; client=[32.1.22.129]; method=[GET]; servlet=[NavyRegulation]; session=[null]; user=[null]; time=[734ms]; status=[failed: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of regulation.regulation.Regulation.id]
2006-05-30 15:14:53,687 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] - Publishing event in context [Root WebApplicationContext]: ServletRequestHandledEvent: url=[/NavyRegulation/viewRegulation1.html]; client=[32.1.22.129]; method=[GET]; servlet=[NavyRegulation]; session=[null]; user=[null]; time=[734ms]; status=[failed: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of regulation.regulation.Regulation.id]