У меня есть следующие службы 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{}
Показывайте вставки для OfPropertyRepository – shazin
INSERT INTO TIMS.OFPROPERTY VALUES ('ASD', 'P, A', 'IMOS'); –