HSQLDB Spring 用户缺少权限
Posted
技术标签:
【中文标题】HSQLDB Spring 用户缺少权限【英文标题】:HSQLDB Spring user lack privileges 【发布时间】:2015-01-25 22:11:40 【问题描述】:我的项目使用的是 JDBC 和 Spring 3。
随着我的小项目不断扩大,我需要进行一些测试。我想为我的 DAO 层创建集成测试,但我无法让它与嵌入式 HSQL 数据库一起使用。
这是我得到的错误:Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: name
我的配置:
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();
道法:
@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 层上设置集成测试。
感谢您的帮助。
【问题讨论】:
【参考方案1】:使用 HSQLDB 服务器进行测试。如果需要,服务器可以为 mem: 数据库提供服务。
【讨论】:
以上是关于HSQLDB Spring 用户缺少权限的主要内容,如果未能解决你的问题,请参考以下文章
Java HQL org.hsqldb.HsqlException:用户缺少权限或找不到对象