我正在使用JPA实体。
我创建了一个像这样的新人:
@Entity
public class Entity {
@Id
@GeneratedValue(generator = "Entity_Sequence", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "Entity_Sequence", sequenceName = "Entity_Seq")
private Long id;
// ... other fields
}
我用来创建数据库对象的生成的SQL:
CREATE SEQUENCE ENTITY_SEQ START WITH 1 INCREMENT BY 50;
CREATE TABLE ENTITY (
ID NUMBER(19, 0) NOT NULL,
-- ... other fields
PRIMARY KEY (ID)
);
现在,我能够从SQL Developer和IntelliJ查询序列的nextval。但是当我尝试从代码中持久保存实体时,Hibernate会抛出以下异常:
15:21:11,022 INFO [stdout] (EJB default - 2) Hibernate: select ENTITY_SEQ.nextval from dual
15:21:11,037 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 2) SQL Error: 2289, SQLState: 42000
15:21:11,037 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 2) ORA-02289: Sequence ist nicht vorhanden.
(“Sequence ist nicht vorhanden”翻译为“序列不存在”。)
为什么Hibernate在我不能找到序列的时候?
编辑1(12-01):
我尝试了建议的answer from Olivier,但错误仍然相同。
编辑2(12-01):
由于Olivier删除了他的答案,他建议我将@SequenceGenerator
注释移到课堂上。
答案 0 :(得分:1)
我发现错误:这是我的本地设置,所以没有什么用处告诉您,只需检查您的设置。
我在服务器实际未使用的文件中“配置”我的服务器,因此没有显示效果。
答案 1 :(得分:0)
可能会有很多错误。是否有关于您的项目配置的更多信息?
格尔茨 丹尼斯