2012-02-13 4 views
1
내가 SQL 서버 2008 사용하고

다음과 같은 단지 내 클래스 경로에 있습니다SQL 서버 2008, JDO (Datanucleus 3.0.7) 및 열 최대 길이

datanucleus-api-jdo-3.0.6.jar 
datanucleus-core-3.0.8.jar 
datanucleus-enhancer-3.0.1.jar 
datanucleus-rdbms-3.0.7.jar 

내가 말하는 시작하고 싶습니다 모든 것이 잘 작동합니다.

ASCII 파일 내용이 포함될 것으로 예상되는 String 필드가있는 객체를 성공적으로 유지합니다. 0 | | 1.00 | 1.00 | 1.00 || EUR | 8010312090196 || ADVBANMMGM8 값을 저장하려고 "

javax.jdo.JDOFatalUserException을 : 파일이 큰 경우 지속하면서

나는이 오류 | 길이가 256 인 "FILECONTENT"열에 "BA MASTER MGM 8 | 0 | 1.00 | 1.00 | 1.00 || EUR "을 입력하십시오. 데이터를 수정하십시오!

파일 내용을 명확하게하기 위해 따옴표로 묶었습니다.

이 내 package.jdo 파일입니다 코드 모든 것이 잘 작동

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jdo PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN" 
    "http://java.sun.com/dtd/jdo_2_0.dtd"> 
<jdo> 
    <package name="com.mypackage.mycompany.model"> 

      <class name="FeedEvent" table="MY_UPLOADS" identity-type="application" > 
        <field name="id" persistence-modifier="persistent" primary- key="true" value-strategy="identity" /> 
        <field name="fileName" persistence-modifier="persistent" /> 
        <field name="fileSize" persistence-modifier="persistent" /> 
        <field name="fileContent" persistence-modifier="persistent" /> 
        <field name="uploaded" persistence-modifier="persistent" /> 
        <field name="uploadDate" persistence-modifier="persistent" /> 
        <field name="uploadFailureReason" persistence-modifier="persistent" /> 
        <field name="eventDate" persistence-modifier="persistent" /> 
      </class> 


    </package> 
</jdo> 

창에서 우리는 내가 DB 형에 관련되지 않은 추측 있도록 1메가바이트로 큰 등의 파일을 저장할 수있게되었습니다.

내 POJO입니다 :

public class FeedEvent { 

private Long id; 
private String fileName; 
private long fileSize; 
private String fileContent; 
private boolean uploaded; 
private Date uploadDate; 
private String uploadFailureReason; 
private Date eventDate; 

public FeedEvent() { 
} 

.......getters and setters here.............. 

} 

필드 fileContent ASCII 파일의 내용으로로드 할 때 문제를 제공하는 것입니다. 열 유형을 nvarchar(max), text, varchar(max)으로 변경하려고했으나 행운을 얻지 못했습니다.

모든 의견을 크게 기뻐할 것입니다.

감사합니다.

답변

0

나는 "운"에 남겨 두지 않는 것을 선호합니다. JDO 스펙은 컬럼의 길이를 설정하는 방법을 잘 정의하고있다. 어떤 JDO 책을 참조하거나 DataNucleus에 대한 문서에서 XML 요소 <column>에 대해 충분히 명확하게 알려줄 것이며 이 대다수의 Java 필드 유형에 필요하지 않다는 것을 알려줍니다.

+0

이제는 length 속성을 내부의 열 태그에 추가합니다. fileContent 필드. //감사 –