我有以下CrudRepository和Dao服务。出于测试目的,我使用EmbeddedDatabaseBuilder(创建表并插入样本数据)。
在这种情况下,您可以从RDBMSDaoImpl->test
方法看到,当我尝试通过SpringJPA访问PROPERTY表中的数据时,它返回空结果。
但是当我使用convertional方式(jdbctemplate)时,我得到通过insert-data.sql插入的值。
使用Spring boot 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 :(得分:0)