首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于OpenJPA的HSQLdb权限

关于OpenJPA的HSQLdb权限
EN

Stack Overflow用户
提问于 2010-06-02 01:07:49
回答 1查看 1.9K关注 0票数 0

我(still)对HSQLdb & OpenJPA有很多问题。

代码语言:javascript
复制
Exception in thread "main" <openjpa-1.2.0-r422266:683325 fatal store error> org.apache.openjpa.persistence.RollbackException: user lacks privilege or object not found: OPENJPA_SEQUENCE_TABLE {SELECT SEQUENCE_VALUE FROM PUBLIC.OPENJPA_SEQUENCE_TABLE WHERE ID = ?} [code=-5501, state=42501]
    at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:523)
    at model_layer.EntityManagerHelper.commit(EntityManagerHelper.java:46)
    at HSQLdb_mvn_openJPA_autoTables.App.main(App.java:23)

HSQLdb作为服务器进程运行,绑定到我本地机器上的端口9001。用户是SA。配置如下:

代码语言:javascript
复制
<persistence-unit name="HSQLdb_mvn_openJPA_autoTablesPU"
        transaction-type="RESOURCE_LOCAL">
        <provider>
            org.apache.openjpa.persistence.PersistenceProviderImpl
        </provider>
        <class>model_layer.Testobjekt</class>
        <class>model_layer.AbstractTestobjekt</class>
        <properties>
            <property name="openjpa.ConnectionUserName" value="SA" />
            <property name="openjpa.ConnectionPassword" value=""/>

            <property name="openjpa.ConnectionDriverName"
                value="org.hsqldb.jdbc.JDBCDriver" />
            <property name="openjpa.ConnectionURL"
                value="jdbc:hsqldb:hsql://localhost:9001/mydb" />

            <!-- 
            <property name="openjpa.jdbc.SynchronizeMappings"
                value="buildSchema(ForeignKeys=true)" />
                 -->
        </properties>
    </persistence-unit>

我已经成功地与ORM层建立了连接。我可以创建并连接到我的EntityManager。

但是,每次我使用

代码语言:javascript
复制
EntityManagerHelper.commit();

它会因错误而失败,这对我来说毫无意义。SA是我用来创建表的Standard Admin用户。它应该能够以该用户身份持久化到hsqldb中。

编辑:经过几个小时的调试,我找到了失败的原因。如果未设置所需的表项(非NULL),也会出现此类错误消息。对我来说,这并不意味着什么。由于缺少权限问题的条目,OpenJPA层似乎错误地不能插入语句。因此,我简单地接受了第一个答案。感谢阅读:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-02 01:14:44

我的印象是HSQL无权在配置的目录中写入它的数据文件。

当我以root/Administrator身份手动测试我的服务器时,这种情况总是发生在我身上,而当它作为守护进程/服务启动时,它将更改为较低权限的用户。当服务器作为服务器运行时,这些文件归另一个用户所有。

这可能是其他原因:在Windows上,当另一个进程(另一个服务器实例)仍在使用文件时,或者甚至当eclipse以其无限的智慧决定为数据库建立索引时,我使用了它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2951763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档