Jpa 查询表时遇到死锁情况

Jpa 查询表时遇到死锁情况,jpa,eclipselink,sybase,sap-ase,Jpa,Eclipselink,Sybase,Sap Ase,我们有一个名为job的表,它有一个自引用键。我们使用JPA和eclipselink作为JPA提供商。有时我们会遇到以下异常 异常[EclipseLink-4002](Eclipse持久性服务)- 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException-Internal 异常:com.sybase.jdbc3.jdbc.SybSQLException:您的服务器命令 (家族id#0,进程id#384)

我们有一个名为job的表,它有一个自引用键。我们使用JPA和eclipselink作为JPA提供商。有时我们会遇到以下异常

异常[EclipseLink-4002](Eclipse持久性服务)- 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException-Internal 异常:com.sybase.jdbc3.jdbc.SybSQLException:您的服务器命令 (家族id#0,进程id#384)遇到死锁情况。 请重新运行您的命令

我们在UI中有一个操作,当执行该操作时,JSM消息将发送到某个外部组件,并在作业表中创建一条记录,然后将作业id发送到客户端,并将其重定向到列出表中所有作业的作业视图。重定向后,客户端将发送一个ajax请求,列出所有作业。在执行此操作时,我们将收到来自外部组件的通知,然后更新作业表记录

我坚信,在执行select操作时,我们正在尝试更新表,而这正在发生。谁能告诉我怎么解决这个问题吗


提前感谢大家祝您好运。

除了具有良好的索引外,您还可以通过更改表的锁定方案来避免选择/更新冲突

Sybase在这方面有很好的文档:


您的作业表中有索引吗?如果有,请尝试添加它。索引?我不明白你的意思。你是指索引的主键吗。我应该在哪里添加它?在评论里?你是想让我给出表格描述吗?过程中涉及的表格可能有用吗?我还是听不懂你说的。此过程只涉及一个表。如果你不介意的话,请给我解释一下细节。很抱歉,如果我每次都问你同样的问题,索引将有助于解决这种情况,请阅读本文谢谢,我会检查。