這是我H2測試的例子。你可以稍微改變一下,看看它適合你的情況。主要是你需要手動創建數據庫表,讓你的config.xml包含你的數據庫。 您可以手動創建.sql文件,並創建表並讓bean在您使用spring時包含它。
someTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("testConfig.xml") // <-- this xml you need to include
public class PortDaoImplTest {
private static final Logger log = Logger.getLogger(sysInfoDaoImplTest.class);
@Autowired
private sysInfoDaoImpl sysDao;
@After
public void tearDown(){
portDao = null;
}
@Test
public void testGetPort() {
log.info("Testing getInfo(String id)...");
SysInfo p = sysDao.getInfo("nysdin2039");
assertNotNull(p);
}
testConfig.xml
...xml header...
<!-- h2 driver -->
<bean id="test.dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" lazy-init="false" >
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:mem:test_mem;DB_CLOSE_DELAY=-1;MODE=ORACLE" />
</bean>
<!-- datasource file -->
<jdbc:initialize-database data-source="test.dataSource">
<!-- table list -->
<jdbc:script location="com/yourPath/h2/schema.sql" />
<jdbc:script location="com/yourPath/h2/test_data.sql" />
</jdbc:initialize-database>
<!-- bean def -->
<bean id="sysInfoDao" class="com.mycompanyName.sysInfoDaoImpl" >
<property name="log" ref="test.log" />
<property name="dataSource" ref="test.dataSource" />
</bean>
....
H2 schema.sql文件文件
drop table IF EXISTS tbl_all_orders;
CREATE TABLE tbl_all_orders
(
your_stuff_ID NUMBER NOT NULL,
your_other_column_stuff VARCHAR2(15) DEFAULT
);
...添加相應的約束你或列...
test_data.sql f ILE
INSERT into tbl_all_orders
(your_column_names... , your_other_column_names...)
VALUES
(1, 'values',...);
根據錯誤您的表名爲tbl_all_orders在哪裏? – logger
它是Linda的子包中的一個實體,它在entitymanager.packagesToScan中提到:linda – Monaappetite
但您是否創建了表?我的猜測是你沒有這樣,這就是爲什麼這個錯誤顯示。如果你這樣做,那麼請給我看看你創建表的代碼。 (又名:架構) – logger