【问题标题】:(EclipseLink) JPA ignores custom table for @TableGenerator(EclipseLink) JPA 忽略 @TableGenerator 的自定义表
【发布时间】:2018-01-19 17:42:23
【问题描述】:

我正在使用一个数据库,其中每个表都必须加上前缀(公司政策)。

我的实体对 Id 有以下注释

@TableGenerator(name = "x_gen", table = "pfx_sequence", pkColumnName = "sequence", valueColumnName = "counter", pkColumnValue = "table_x_seq")  
@GeneratedValue(strategy = GenerationType.TABLE, generator = "x_gen")

每个表都替换了“x”。

问题在于,当 EclipseLink 尝试更新表时,它会使用默认值(表 SEQUENCE 具有列 SEQ_NAME 和 SEQ_COUNT)

Error Code: 1146
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
        bind => [2 parameters bound]
Query: DataModifyQuery(name="pe_genk" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
Caused by: java.sql.SQLSyntaxErrorException: Table 'my_schema.SEQUENCE' doesn't exist

知道去哪里看吗?

谢谢

【问题讨论】:

  • 堆栈跟踪和日志应该会有所帮助。 EclipseLink 日志应该显示它在查看您的实体及其上的排序时正在处理的内容,因为它似乎没有找到或使用您的注释。
  • 我只是在看那个。谢谢,问题是其中一个实体中的生成器名称拼写错误。我想我(我)累了。

标签: java jpa eclipselink


【解决方案1】:

问题是我的一个实体拼写错误。

例如

@TableGenerator(name = "x_gen" [...])
@GeneratedValue(generator="x_genn" [...])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2013-11-18
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多