1

我正在使用下面的注释在 JPA 1 中实现序列,但出现错误。代码:

@TableGenerator(name="tab1", initialValue=1, allocationSize=100
//using above annotation on entity class

@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="tab1")
private Integer id;

数据库:甲骨文

错误:

尝试更新序列表“OPENJPA_SEQUENCES_TABLE”失败。当您对任何数据存储身份类运行映射工具的刷新操作时,通常会创建序列表。如果您还没有运行映射工具但想创建序列表,请运行:java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add

4

2 回答 2

0

似乎表“OPENJPA_SEQUENCES_TABLE”根本不存在,错误消息建议:

  1. 创建在控制台中运行命令的表java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add在这里查看一些细节。
  2. 或者使用这里描述的映射工具。
  3. 或者,您可以尝试从 oracle 控制台手动创建表。

如果您选择 1 或 2,请稍后在您的数据库中检查该表是否已生成。

于 2013-09-08T11:28:21.840 回答
0

你应该这样做:

@Id
@TableGenerator(name = "Irakli_GEN",
        table = "SEQUENCES",
        pkColumnName = "SEQ_NAME",
        valueColumnName = "SEQ_NUMBER",
        pkColumnValue = "CLIENTS_SEQ",
        allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "Irakli_GEN")

它应该自动为您创建表 SEQUENCES,并在其中创建序列。我将此代码用于我的实体并且它有效。

于 2016-12-06T18:52:01.010 回答