2015-08-03 3 views
0

Я играю с весной test dbunit library, у меня есть вопрос о наборах данных. У меня есть POJO, представляющий объект, который я хочу сохранить в базе данных в памяти в своих тестах. Этот POJO не аннотируется никакими аннотациями JPA, такими как @Entity, @Table или @Column, можно ли использовать такой класс в файле набора данных XML с аннотацией @DatabaseSetup?Нужны ли аннотации JPA при использовании аннотации DBUnit @DatabaseSetup от Spring?

Пример кода: XML набор данных файла:

<?xml version="1.0" encoding="UTF-8"?> 
    <dataset> 
     <Person id="1" dateOfBirth="2000-07-25T10:55:58" age="10.5" sex="MALE"/> 
    </dataset> 

и Person POJO класс:

public class Person { 

private Long id; 
private LocalDateTime dateOfBirth; 
private BigDecimal age; 
private Sex sex; 

public Long getId() { 
    return id; 
} 

public void setId(Long id) { 
    this.id = id; 
} 

public LocalDateTime getDateOfBirth() { 
    return dateOfBirth; 
} 

public void setDateOfBirth(LocalDateTime dateOfBirth) { 
    this.dateOfBirth = dateOfBirth; 
} 

public BigDecimal getAge() { 
    return age; 
} 

public void setAge(BigDecimal age) { 
    this.age = age; 
} 

public Sex getSex() { 
    return sex; 
} 

public void setSex(Sex sex) { 
    this.sex = sex; 
} 

Сейчас я получаю следующее сообщение об ошибке:

org.dbunit.dataset.NoSuchTableException : Лицо

У меня есть еще один класс POJO с аннотациями JPA и обрабатывается без каких-либо ошибок в аннотации @DatabaseSetup. Я пытаюсь использовать оба POJO в одном тесте. Нужны ли аннотации JPA для библиотеки Spring DBUnit Spring для настройки моей базы данных до тестирования?

ответ

0

Нет, вам не нужны аннотации JPA. Проблема в том, что в используемой базе данных отсутствует таблица с именем Person. DBUnit вставит данные, но это не будет создавать таблицы для вас (Там же аналогичный вопрос об этом: Is there any way for DBUnit to automatically create tables?)

Чтобы управлять схемой, я рекомендую вам использовать инструмент, который управляет «DB миграции», такие как flyway или liquibase. Оба этих инструмента объединяются с пружиной, поэтому они могут создавать схему при загрузке пружины.