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 用户缺少权限的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB:用户缺少权限或找不到对象:USERS

Java HQL org.hsqldb.HsqlException:用户缺少权限或找不到对象

HSQLDB:用户缺少权限或找不到对象错误

SpringBoot 用户缺少权限或找不到对象 HSQLDB

HSQLDB SqlTool 抛出用户缺少权限或找不到对象

HSQLDB:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象