1

次の依存関係を持つプロジェクトがあります。

hibernate-entitymanager-4.1.8
hsql-2.2.8

私は以下を含む永続性ユニットを持っています:

<properties>
    <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
    <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
    <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
</properties>

したがって、フィールドを持つエンティティは次のようになります。

@Lob
@Column(name = "DOCUMENT")
private String document;

EntityManagerを介して永続化すると、エンティティに次のスタックトレースの終わりが表示されます。

Caused by: java.lang.RuntimeException: unsupported internal operation: Session
at org.hsqldb.error.Error.runtimeError(Unknown Source)
at org.hsqldb.Session.performLOBOperation(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
at org.hsqldb.types.ClobDataID.nonSpaceLength(Unknown Source)
at org.hsqldb.types.CharacterType.castOrConvertToType(Unknown Source)
at org.hsqldb.types.CharacterType.convertToType(Unknown Source)
at org.hsqldb.StatementDML.getInsertData(Unknown Source)
at org.hsqldb.StatementInsert.getResult(Unknown Source)

ここで明らかに間違ったことをしていますか?これは、かなりの数の変更を加えて、別のマシンで機能していました。おそらく、依存関係のアップグレード、または単純なSpring/Hibernate抽象化レイヤーからJPA/Hiberateへの切り替えの結果です。

他のいくつかは、Googleで見つかったものとほとんど同じものを報告していますが、特定の解決策はありません:(

4

3 に答える 3

2

この問題は、HSQLDB の最新バージョンで修正されています。バージョン 2.3.0 は、hsqldb.org から入手できます。

于 2013-02-06T20:58:15.227 に答える
0

新しいバージョンの HSQLDB 2.4.1 と Hibernate-core 5.3.6 でも試してみましたが、問題は解決しません。Hibernate は列の長さが 255 文字しかないスキーマを生成するため、私の場合、列の型を変更してみてください (clob(255) ではなく clob)。

alter table public.user alter column myClobColumn clob

于 2018-09-23T03:07:18.637 に答える