0

我有一个在 WAS 7 上完美运行的代码,但是当我在 WAS 8.0.0.5 中运行它时失败了。我使用 JPA 2.0 和 openJPA 作为我的提供者。在我的 em 上调用 persist 会引发嵌套异常。有没有人设法在 WAS 8.0.0.5 中编写 JPA 程序

这是例外

WTRN0074E: 从 before_completion 同步操作中捕获的异常:org.apache.openjpa.persistence.PersistenceException:DB2 SQL 错误:SQLCODE=-204,SQLSTATE=42704,SQLERRMC=.OPENJPA_SEQUENCE_TABLE,DRIVER=3.58.81 {prepstmnt -1559269434 SELECT SEQUENCE_VALUE FROM 。 OPENJPA_SEQUENCE_TABLE 其中 ID = ?只读,RS 使用并保持更新锁 [params=?]}

4

2 回答 2

2

SQLCODE=-204 指出缺少某些东西。日志不断打印 THAKHANI.OPENJPA_SEQUENCE_TABLE 这让人认为可能是表丢失了。您还可以检查以确保 JPA 使用的 DB2 用户有权创建表并在其上运行 SELECT 语句。

于 2013-03-07T19:48:05.127 回答
2

在从表中生成实体时,我通过选择 Identity 作为我的主键生成机制来设法解决该问题。我还在我的 persistence.xml 中添加了以下内容。

<properties>
    <!-- OpenJPA specific properties -->
    <property name="openjpa.TransactionMode" value="managed"/>
    <property name="openjpa.ConnectionFactoryMode" value="managed"/>
    <property name="openjpa.jdbc.DBDictionary" value="db2"/>
    <property name="openjpa.jdbc.Schema" value=<SchemaName>/>
 </properties>
于 2013-03-08T09:57:22.450 回答