2016-08-04 42 views
0

我試圖從數據庫中獲取數據。我收到以下錯誤。java.lang.NumberFormatException:對於從數據庫獲取數據時的輸入字符串XX

[Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: An error occurred while converting the nvarchar value to JDBC data type INTEGER.] with root cause 
java.lang.NumberFormatException: For input string: "XX" 

我知道它試圖將我的字符串轉換爲整數。但我不明白爲什麼這樣做,因爲我的數據類型只是字符串。

我的代碼如下所示:

型號:

package com.a.spring.models; 

import java.util.Date; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.OneToOne; 
import javax.persistence.Table; 


@Entity 
@Table(name="CapacityConstraint") 
public class CapacityConstraint { 


    private int DocEntry; 
    private String OpCode; 
    private String RsrcCd; 
    private String Type; 
    private Operation operation; 

    @Id 
    @Column(name="DocEntry") 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public int getDocEntry() { 
     return DocEntry; 
    } 


    public void setDocEntry(int DocEntry) { 
     this.DocEntry = DocEntry; 
    } 


    @Column(name="OpCode") 
    public String getOpCode() { 
     return OpCode; 
    } 


    public void setOpCode(String opCode) { 
     OpCode = opCode; 
    } 


    @Column(name="RsrcCd") 
    public String getRsrcCd() { 
     return RsrcCd; 
    } 


    public void setRsrcCd(String rsrcCd) { 
     RsrcCd = rsrcCd; 
    } 


    @Column(name="Type") 
    public String getType() { 
     return Type; 
    } 


    public void setType(String type) { 
     Type = type; 
    } 

    @OneToOne 
    @JoinColumn(name = "OpCode", nullable = false, insertable = false, updatable = false) 
    public Operation getOperation() { 
     return operation; 
    } 


    public void setOperation(Operation operation) { 
     this.operation = operation; 
    } 


} 

操作模式:

@Entity 
@Table(name="[@IS_OPRMASTER]") 
public class Operation { 
    private int docEntry; 
    private String OpCode; 
    private String OpName; 

    @Id 
    @Column(name="DocEntry") 

    public int getDocEntry() { 
     return docEntry; 
    } 
    public void setDocEntry(int docEntry) { 
     this.docEntry = docEntry; 
    } 

    @Column(name="U_OpCode") 
    public String getOpCode() { 
     return OpCode; 
    } 
    public void setOpCode(String opCode) { 
     OpCode = opCode; 
    } 
    @Column(name="U_OpName") 
    public String getOpName() { 
     return OpName; 
    } 
    public void setOpName(String opName) { 
     OpName = opName; 
    } 

} 

功能來獲取數據:

@Override 
    public List<CapacityConstraint> getList() { 
     Session session = sessionFactory.getCurrentSession(); 
     Query query= session.createSQLQuery("SELECT * FROM CapacityConstraint order by docEntry").addEntity(CapacityConstraint.class); 
     List <CapacityConstraint> d=query.list(); 
     return d; 
    } 

表capacityconstraint

CREATE TABLE [dbo].[CapacityConstraint](
    [DocEntry] [numeric](18, 0) IDENTITY(1,1) NOT NULL, 
    [OpCode] [nvarchar](50) NULL, 
    [RsrcCd] [nvarchar](50) NULL, 
    [Type] [nvarchar](50) NULL, 
    CONSTRAINT [PK_CapacityConstraint] PRIMARY KEY CLUSTERED 
(
    [DocEntry] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

表操作

CREATE TABLE [dbo].[@IS_OPRMASTER](
    [DocEntry] [int] NOT NULL, 
    [U_OpCode] [nvarchar](20) NULL, 
    [U_OpName] [nvarchar](100) NULL, 
CONSTRAINT [KIS_OPRMASTER_PR] PRIMARY KEY CLUSTERED 
(
    [DocEntry] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

堆棧跟蹤:

Aug 04, 2016 10:52:36 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [kendo] in context with path [/GanttView] threw exception [Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: An error occurred while converting the nvarchar value to JDBC data type INTEGER.] with root cause 
java.lang.NumberFormatException: For input string: "PTHP" 
    at java.lang.NumberFormatException.forInputString(Unknown Source) 
    at java.lang.Integer.parseInt(Unknown Source) 
    at java.lang.Integer.valueOf(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.DDC.convertStringToObject(DDC.java:291) 
    at com.microsoft.sqlserver.jdbc.DDC.convertStreamToObject(DDC.java:419) 
    at com.microsoft.sqlserver.jdbc.ServerDTVImpl.getValue(dtv.java:2007) 
    at com.microsoft.sqlserver.jdbc.DTV.getValue(dtv.java:175) 
    at com.microsoft.sqlserver.jdbc.Column.getValue(Column.java:113) 
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1982) 
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1967) 
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(SQLServerResultSet.java:2219) 
    at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:220) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.hibernate.engine.jdbc.internal.proxy.AbstractResultSetProxyHandler.continueInvocation(AbstractResultSetProxyHandler.java:104) 
    at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) 
    at com.sun.proxy.$Proxy44.getInt(Unknown Source) 
    at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:66) 
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:269) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:265) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238) 
    at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:157) 
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2807) 
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1545) 
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1477) 
    at org.hibernate.loader.Loader.getRow(Loader.java:1377) 
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:644) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:854) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293) 
    at org.hibernate.loader.Loader.doList(Loader.java:2382) 
    at org.hibernate.loader.Loader.doList(Loader.java:2368) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2198) 
    at org.hibernate.loader.Loader.list(Loader.java:2193) 
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:331) 
    at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1780) 
    at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:229) 
    at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:156) 
    at com.kendoui.spring.models.CapacityContraintDaoImpl.getList(CapacityContraintDaoImpl.java:25) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 
    at com.sun.proxy.$Proxy28.getList(Unknown Source) 
    at com.kendoui.spring.controllers.CapacityContraintController.read(CapacityContraintController.java:51) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 

這是給錯誤的操作碼。如果我從capacityConstraint模型中刪除操作模型,那麼它工作正常,不會出現任何錯誤。但是如果我包含它,那麼它會拋出錯誤。 所以我認爲問題是與@joinColumn語句。

我真的很感激,如果有人能解決我的問題。

在此先感謝。

+0

'XX'是二十個右邊。 –

+0

也許'docEntry'不是int。請發佈您的表架構 –

+0

XX是一個字符串。 – mona

回答

1

我認爲你是有身分的同名2列,

@Column(name = 「操作碼」)
公共字符串getOpCode(){
返回操作碼;
}


@OneToOne
@JoinColumn(name = 「操作碼」,可爲空=假,可插入 =假,可更新= FALSE)
公共操作getOperation( ){ 返回操作; }

一個對象引用(外鍵)一個字符串,所以他們中的一個人試圖在整數格式轉換爲字符串格式外鍵和一個。

+0

你好Rupesh,我試着改變joincolumn語句中的列名。但它給我列名稱U_OpCode無效。 @JoinColumn(name =「OpCode」,...)中的 – mona

+0

名稱應該是您的表CapacityConstraint中具有用於@IS_OPRMASTER外鍵的列的名稱,此列缺失。 – Rupesh

相關問題