Java HSQLDB Spring用户缺少权限
我的项目使用JDBC和Spring3 随着我的小项目的发展,我需要一些测试。我想为我的DAO层创建集成测试,但我无法让它与嵌入式HSQL数据库一起工作 以下是我得到的错误:由以下原因引起:org.hsqldb.hsqldb异常:用户缺少权限或找不到对象:name 我的配置:Java HSQLDB Spring用户缺少权限,java,spring,spring-mvc,hsqldb,Java,Spring,Spring Mvc,Hsqldb,我的项目使用JDBC和Spring3 随着我的小项目的发展,我需要一些测试。我想为我的DAO层创建集成测试,但我无法让它与嵌入式HSQL数据库一起工作 以下是我得到的错误:由以下原因引起:org.hsqldb.hsqldb异常:用户缺少权限或找不到对象:name 我的配置: CREATE SCHEMA GIVEMEASHOW -- USE_CASE TABLE CREATE TABLE SHOW ( ID BIGINT
CREATE SCHEMA GIVEMEASHOW
-- USE_CASE TABLE
CREATE TABLE SHOW (
ID BIGINT GENERATED BY DEFAULT AS IDENTITY,
NAME VARCHAR(255) DEFAULT NULL,
ICON_URL VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (ID),
CONSTRAINT UNIQUE_SHOW_NAME UNIQUE (NAME)
);
我的测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations =
{ "classpath:gmas-db-cfg-test.xml" })
public class ShowDaoIT
{
public static Logger LOGGER = Logger.getLogger(ShowDaoIT.class.getName());
@Inject
ShowDao showDao;
@Test
public void saveIT()
{
Show show = new Show();
show.setIconUrl("show1_banner.png");
show.setName("show1");
showDao.save(show);
showDao.list();
}
}
dao方法:
@Override
public void save(final Show show)
{
LOGGER.info("Saving a new Show");
try
{
final String query = "insert into " + TABLE_NAME + " (name, icon_url) " + "VALUES (?, ?)";
jdbcTemplate.update(new PreparedStatementCreator()
{
public PreparedStatement createPreparedStatement(Connection con) throws SQLException
{
PreparedStatement ps = con.prepareStatement(query, new String[]
{ "name", "icon_url" });
ps.setString(1, show.getName());
ps.setString(2, show.getIconUrl());
return ps;
}
}, keyHolder);
show.setId(keyHolder.getKey().intValue());
} catch (final Exception e)
{
e.printStackTrace();
}
}
我的mysql数据库一切正常,我的网站正常运行。我只是无法在dao层上设置集成测试
感谢您的帮助。使用HSQLDB服务器进行测试。如果需要,服务器可以为mem:数据库提供服务