2016-11-20 1 views
0

У меня есть следующие службы CrudRepository и Dao. Для целей тестирования я использую EmbeddedDatabaseBuilder (создание таблиц и вставка примерных данных). В этом случае, как вы можете видеть из метода RDBMSDaoImpl->test, когда я пытаюсь получить доступ к данным в таблице PROPERTY через SpringJPA, он возвращает пустой результат. Но когда я использую конверсионный путь (jdbctemplate), я получаю значение, которое вставлено через insert-data.sql.Комбинация SpringJPA и EmbeddedDatabaseBuilder. Репозиторий возвращает пустые данные при модульном тестировании

Использование весенней загрузки 1.3.3.RELEASE.

public interface OfPropertyRepository extends CrudRepository <OfProperty, String> { 

    OfProperty findByName(String name); 
} 

@Service 
public class RDBMSDaoImpl implements RDBMSDao { 

    private static final String SQL = "SELECT VALUE FROM TIMS.PROPERTY WHERE ID=?"; 

    @Autowired 
    OfPropertyRepository OfPropertyRepository; 

    @Override 
    public int test() { 

**//Return a value** 
    String value = jdbcTemplate.queryForObject(SQL, String.class, "prop.key"); 

**// no value found** 
      OfPropertyRepository.findAll(); 
     } 


    //// 
    public class AppConfigTest { 

    @Bean(destroyMethod = "shutdown") 
    public DataSource getDataSource() throws Exception { 
     return new EmbeddedDatabaseBuilder() 
      .setType(EmbeddedDatabaseType.HSQL)    
      .setName("TIMS") 
      .addScript("classpath:/db/create-db.sql") 
      .addScript("classpath:/db/insert-data.sql") 
      .build();  
    } 

    } 

    @RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {AppConfigTest.class}) 
@ActiveProfiles("Test") 
public class BaseSendServMessageRequestTest implements ApplicationContextAware{} 
+0

Показывайте вставки для OfPropertyRepository – shazin

+0

INSERT INTO TIMS.OFPROPERTY VALUES ('ASD', 'P, A', 'IMOS'); –

ответ