java - 如何在 JPA 中使用不同的序列名称/身份
问题描述
我正在开发三个环境的应用程序。测试,int 和生产数据库。
我有一张表,如果我在 SQL 开发人员中观察生成的 SQL 作为主键
ID" 由默认生成的数字作为标识 MINVALUE 1 MAXVALUE 9999999999999999999999999999 以 1 开始递增 1 缓存 20 NOORDER NOCYCLE 不为空启用,
如果我在桌子上看到它看起来像......
"SCHEMA"."ISEQ$$_97103".nextval
在 JPA/eclipselink 实体上,我使用了这个 ISEQ$$_97103 序列生成器,它在测试环境中工作。
但是,当我在 INT 环境中执行此操作时,它会抛出错误ISEQ$$_97103序列不存在。我观察到,它在 INT 数据库中是一个不同的名称。
当他们系统生成名称时,它们会有所不同。
我尝试使用以下链接但没有用
https://www.thoughts-on-java.org/hibernate-tips-use-auto-incremented-column-primary-key/
如何在 JPA 中指定使用系统从表中生成的身份名称?有什么办法吗?或者是强制性的,名称在三个环境中应该相同。
这是我的实体类:
@Entity
@Table(name = "T_MY_TABLE")
public class MyDataEntity implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// other colums, getters/setters
}
我得到的错误
Internal Exception: java.sql.SQLException: ORA-02289: sequence does not exist
Error Code: 2289
Call: SELECT SEQ_GEN_IDENTITY.NEXTVAL FROM DUAL
Query: ValueReadQuery(sql="SELECT SEQ_GEN_IDENTITY.NEXTVAL FROM DUAL
我真的很想知道,我没有提到任何与序列相关的东西,但为什么它要从序列中读取值。
解决方案
推荐阅读
- c++ - 如何使用“new”而不是 malloc 分配内存?
- xml - 如何使用 XSLT 1.0 过滤和获取 XML 中具有最新日期的元素
- python-3.x - reindex_like 函数如何与方法“ffill”和“bfill”一起使用?
- c# - ASP.NET Core - MVC - 当模型包含列表时回发
与派生类 - c++ - glMapNamedBuffer 是否有任何用例,而不是 glGetNamedBufferSubData 或 glNamedBufferSubData
- database - 如何将原始数据从 Matomo 集成到 Tableau
- dependencies - com.jayway.jsonpath 和 Weblogic 12c
- nlp - 如何通过 python NLP 包(spaCy 或 NLTK)检测句子重音?
- reactjs - NEXTJS:使用来自 useRouter 的参数填充和擦除输入字段并保留“后退按钮”历史记录的最佳方式
- matlab - MATLAB 说这个函数是未定义的