2012-01-19 3 views
3

JPA/Hibernate 및 DBUNIT를 사용하여 일부 엔티티에 몇 가지 문제점이 발생했습니다. 프로젝트를 빌드 할 때이 오류가 발생했습니다. 구성 속성 인 경우DBUnit을 사용하여 JPA/Hibernate 엔티티 테스트하기

username : usera 
pasword : usera 
schema : schemab 
dbunit version > 2.4.2 (e.g. 2.4.4) 

그것은 쉐마 이름이있는 경우 모양을 다음과 같이 구성 특성이있는 경우 오류가 발생합니다

username : usera 
password : usera 
schema : usera 
dbunit version : 2.4.2 

다음과 같이

Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.221 sec <<< FAILURE! 
readDocumentById(com.bt.msm.ds.facade.DataServicesFacadeTest) Time elapsed: 2.043 sec <<< ERROR! 
org.dbunit.dataset.NoSuchColumnException: CONTENTDOCUMENT.ID - (Non-uppercase input column: ID) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive. 
    at org.dbunit.dataset.AbstractTableMetaData.getColumnIndex(AbstractTableMetaData.java:128) 
    at org.dbunit.operation.AbstractOperation.getOperationMetaData(AbstractOperation.java:89) 
    at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:140) 
    at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79) 

오류가 사라 동일한 사용자 이름과 dbunit 버전은 2.4.2입니다. 스키마 이름이 사용자 이름과 같지 않고 dbunit 버전이 2.4.2 (2.4.3 및 2.4.4 시도)보다 큰 버전이면 오류가 발생합니다. 여기

은 몇 가지 세부 사항입니다

테이블 DDL

CREATE TABLE CONTENTDOCUMENT (
    ID bigint(20) NOT NULL AUTO_INCREMENT, 
    CONTENT varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 

데이터베이스 버전 :

MySql 5.5.17 MySQL Community Server (GPL)

JPA/Hibernate 엔티티 (요약) -

@Entity 
@Indexed 
@Table(name="CONTENTDOCUMENT") 

public class ContentDocument{ 
    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    @Column(name="ID") 
    public Long getId() { 
     return id; 
    } 

    @Column(name="CONTENT") 
    public String getContent() { 
     return content; 
    } 
} 

DB 단위 데이터 세트

<dataset> 
    <CONTENTDOCUMENT ID="1" CONTENT="TestContent1"/> 
    <CONTENTDOCUMENT ID="2" CONTENT="TestContent2" /> 
</dataset> 

실마리가 있습니까?

답변

0

데이터를 삽입 할 때 dtd 파일을 지정하십시오.