簡體   English   中英

使用DBUnit測試JPA / Hibernate實體

[英]Testing JPA/Hibernate entities using DBUnit

我使用JPA / Hibernate和DBUNIT專門針對某些實體遇到了一些問題。 當我嘗試構建項目時,我遇到了這個錯誤。

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)

如果配置屬性如下,則錯誤消失

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

如果配置屬性如下,則會發生錯誤

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

看起來如果shema名稱與用戶名相同而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;
    }
}

DBunit數據集

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

有線索嗎?

插入數據時嘗試指定dtd文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM