8

列名にハイフン「-」が含まれていると例外が発生します

    Entity : this is the entity name.
    @Entity
    @Table(name = "RequestHeader")
    public class RequestHeader implements Serializable { 
    ....
    ....    
    @Column(name = "`oh-ordnbr`")
    private Integer ohOrdnbr;

スキーマ定義: スキーマ作成用のクエリです。

    CREATE MEMORY TABLE PUB.REQUESTHEADER(
           REQUESTID INTEGER,
           IMUSERID INTEGER,
           REQUESTDATE DATE,
           REQUESTTIME INTEGER,
           REQUESTSTATUS VARCHAR(19),
           REQUESTTYPE VARCHAR(22),
           HEADERINSTRUCTIONS VARCHAR(5150),
           DATEFORMAT VARCHAR(20),
           TIMEFORMAT VARCHAR(20),
           LANGUAGEID INTEGER,
           "OH-ORDNBR" INTEGER,
           "OH-TRCNSTAMP" INTEGER,
           ISPICKUPLIST BIT(1),
           CONSTRAINT "RQH-1" PRIMARY KEY(REQUESTID)
     );

エラーは以下のとおりです。

Exception Stack: Error message which I have received by running the Junit.
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: THIS_.oh-ordnbr
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ExpressionColumn.checkColumnsResolved(Unknown Source)
at org.hsqldb.QueryExpression.resolve(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
at org.hsqldb.Session.compileStatement(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)

誰かがこれを修正するのを手伝ってくれますか?

4

3 に答える 3

1

構成ファイルに正しいプロバイダーがあることを確認してください。org.hibernate.ejb.HibernatePersistence プロバイダーを提供することで同じ問題を修正しました。

于 2016-07-05T14:32:30.150 に答える
0

HSQL スクリプトが Java を介して実行され、新しいテーブル クエリの後に select/alter/update クエリが続く場合、常に「ユーザーに特権オブジェクトがありません」がスローされます。実際には、Java ステートメントを使用した実行後のクエリの作成は DB にコミットされず、永続化されず、select/alter/update を実行すると例外が発生します。クエリを行ごとに実行し、行ごとにコミットすると、このエラーを回避できます。

于 2016-05-05T08:54:24.787 に答える