2010-11-04 12 views
8

मेरे पास हाइबरनेट में लिखे गए एप्लिकेशन के साथ MySQL 5.0.4.1 का एक उदाहरण है। पृष्ठों में से एक पर, मुझे सर्वर लॉग में निम्न त्रुटि संदेश मिलता है:सर्वर से प्राप्त फ़ील्ड के लिए अज्ञात वर्ण सेट इंडेक्स

सर्वर से प्राप्त फ़ील्ड '123' के लिए अज्ञात वर्ण सेट इंडेक्स। com.mysql.jdbc.Connection.getCharsetNameForIndex (Connection.java:1664)
com.mysql.jdbc.Field पर पर
। (Field.java:144)
com.mysql.jdbc.MysqlIO.unpackField पर (MysqlIO.java : 506)
com.mysql.jdbc.MysqlIO.getResultSet (MysqlIO.java:280 पर)
com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:1319 पर)
com.mysql.jdbc.MysqlIO.sqlQuery पर (MysqlIO.java:1218)
com.mysql.jdbc.Connection.execSQL (Connection.java:2233) पर
com.mysql.jdbc.Connection.execSQL (Connection.java:2193) पर
com.mysql.jdbc पर .Connection.execSQL (कनेक्शन.जावा:2174)
com.mysql.jdbc.Connection.setAutoCommit (Connection.java:5236)
org.apache.commons.dbcp पर .DelegatingConnection.setAutoCommit (DelegatingConn ection.java:268)
org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper.setAutoCommit (PoolingDataSource.java:293) org.hibernate.transaction.JDBCTransaction.toggleAutoCommit (JDBCTransaction.java:194 पर
) संगठन पर
पर। hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit (JDBCTransaction.java:186)
org.hibernate.transaction.JDBCTransaction.rollback (JDBCTransaction.java:162)
पर org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback (HibernateTransactionManager.java पर: 603)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback (AbstractPlatformTransactionManager.java:5279)
org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback (AbstractPlatformTransactionManager.javaoice56) पर org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing (TransactionAspectSupport.java:284)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke पर (TransactionInterceptor.java:100) org.springframework.aop.framework पर
पर
। ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:170)
org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke (MethodSecurityInterceptor.java:66)
पर org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java पर: 170)
org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke (MethodSecurityInterceptor.java:66)
org.springframework.aop.framework पर। ReeflectiveMethodInvocation.proceed (Reflecti veMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:176)
$ Proxy6.getDataFromDatabase पर (अज्ञात स्रोत)
पर org.myCompany.myAction.load पर (अज्ञात स्रोत)
sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल निवासी विधि)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
पर sun.reflect.DelegatingMethodAccessorImpl.invoke पर (DelegatingMethodAccessorImpl.java:25) java.lang पर
पर। प्रतिबिंबित करें। Method.invoke (Method.java:324)
org.apache.struts.actions.DispatchAction.dispatchMethod (DispatchAction.javas74)
org.apache.struts.actions.DispatchAction.execute (DispatchAction.exava: 1 9 4)
org.apache.struts.action.R पर orest.rocache.pravaessActionPerform
org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:414)
javax.servlet.http.HttpServlet पर।सेवा (HttpServlet.java:787)
javax.servlet.http.HttpServlet.service पर (HttpServlet.java:908)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) संगठन पर
पर। apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:264)
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke पर पर (FilterSecurityInterceptor.java:107)
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:72)
पर org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274) संगठन पर
पर। acegisecurity.ui.ExceptionTranslationFilter.doFilter org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125)
पर (ExceptionTranslationFilter.java:110)
org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
में संगठन पर .acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274) org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:217) पर

org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter पर (FilterChainProxy जावा: 274)
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter पर (HttpSessionContextIntegrationFilter.java:229)
org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter पर (FilterChainProxy.java:274)org.acegisecurity.util.FilterChainProxy.doFilter (FilterChainProxy.java:148)
org.acegisecurity.util.FilterToBeanProxy.doFilter (FilterToBeanProxy.java:98)
पर org.apache.catalina.core.ApplicationFilterChain.internalDoFilter पर पर 10 (ApplicationFilterChain.java2213)
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java8080)
संगठन पर। apache.catalina.core.StandardPipeline.invoke (standardPipeline.java:509)
org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java2118)
org.apache.catalina.core.StandardPipeline.invoke पर (StandardPipeline.java:509)
org.apache.catalina.core.StandardHostValve.invoke (StandardHos पर tvalve.java:209)
org.apache.catalina.core.StandardPipeline.invoke (standardPipeline.java:509)
com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process (NSAPIProcessor.java:157) पर
com.iplanet.ias.web.WebContainer.service पर (WebContainer.java:579)

उत्पादन परिवेश पर यह त्रुटि आती है तो मैं नहीं जानता कि जो क्वेरी समस्या का उत्पादन किया है, लेकिन मैं पता चलेगा कि मेरी किसी भी तालिका में '123' नामक कॉलम नहीं है। क्या आपको इस समस्या का कारण बनने के बारे में कोई सुझाव है?

संपादित करें: एक अनुसरण के रूप में, मैंने पाया कि इस व्यवहार एक known bug in MySQL 5.0.4 है, लेकिन चूंकि मैं mySQL उन्नयन के विकल्प नहीं है मैं एक अच्छा wokaround नहीं मिली है।

उत्तर

0

यह हो सकता है कि किसी भी तरह से फ़ील्ड के लिए वर्ण सेट को अमान्य मान पर सेट किया गया हो, इस SQL ​​को सर्वर पर तालिका नाम को बदलने की समस्या के साथ चलाएं और कॉलम 'कोलेशन' प्रत्येक वर्चर/चार के लिए वर्णमाला दिखाएगा खेतों

SHOW FULL COLUMNS IN table_name; 

इसके बाद आप निम्न का उपयोग करके एक क्षेत्र का वर्ण सेट बदल सकते हैं:

ALTER TABLE t MODIFY col1 VARCHAR(50) CHARACTER SET latin1; 
संबंधित मुद्दे