0

我已经开始研究旧版 oracle 数据库并使用 Spring boot Jpa 尝试在CHANNELMGR_REQUEST没有身份的表 ( ) 中插入新行:

在此处输入图像描述

该表有一个数字列 ( CM_ISN) 并且在逻辑上可能是一个身份候选者,但由于某种原因我无法触及数据库。

我发现了一个现有的序列 ( CHANNELMGR_SEQ),它也用于为该CM_ISN列生成值。

在此处输入图像描述

所以我决定使用该序列并在我的等效 POJO 中添加一些注释,如下所示,并将序列映射到该CM_ISN列。但不接触数据库:

在此处输入图像描述

我的存储库是这样的:

在此处输入图像描述

插入行时,成功调用序列但得到如下异常:

在此处输入图像描述

我的问题:

  1. 修改实体并将@Id 添加到不在等效表中的实体是错误的吗?
  2. 我收到错误的代码有什么问题?

PS:很抱歉放了图片而不是实际的源代码,原因是开发机器无法访问互联网。

4

1 回答 1

1
  1. 不是主键就错了
  2. 使用 BigDecimal 而不是 Number
于 2021-07-16T07:20:23.123 回答