【发布时间】:2017-09-27 04:46:40
【问题描述】:
Stacktrace 1:来自方法“submitTicket”第 74 行的错误,即:em.persist(bean);
at com.sun.proxy.$Proxy237.creer(Unknown Source)
at projet.helpdesk.dao.__EJB31_Generated__TicketDao__Intf____Bean__.creer(Unknown Source)
at projet.helpdesk.form.CreationTicketForm.soumettreTicket(CreationTicketForm.java:74)
堆栈跟踪 2:
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150605-31e8258): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-01502: index 'BDD2.TICKETS_PK' or partition of such index is in unusable state
Error Code: 1502
Call: INSERT INTO Tickets (ID_TICKET, DATE_ENVOI, DATE_FERMETURE, DESCRIPTION, ETAT, ID_EMPLOYE, ID_TECHNICIEN, PRIORITE, SUJET) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
bind => [9 parameters bound]
Query: InsertObjectQuery(projet.helpdesk.beans.Ticket@1d796c68)
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331)
提到 ORA-1502 错误在我重新启动电脑后开始显示,在此之前它是描述重复值问题的 ORA-0001 错误。
当我通过em.persist(bean); 插入bean 时,主键又名id_ticket 设置为null,它是Oracle 中使用的触发器,用于增加值。
【问题讨论】:
-
我认为这个错误与 ejb 或 java 无关 - dba-oracle.com/…
-
我已经花了两个小时阅读 ORA ERRORS 文档,无论如何我想我不应该依赖 ORACLE 跳跳虎来生成主键,只要它对我不起作用,我会尝试学习如何通过 JPQL 序列生成 PKey。
标签: ejb eclipselink jpql