2

对于在频繁更新的表上运行的某些查询,我一直在尝试将锁定类型设置为无,但我一直在 SQL Server 中遇到锁定错误。

public static List<Ticket> findOpen() {
    Query query = SNMPTicket.em().createQuery("from Ticket where endTime is null", Ticket.class);
    query.setLockMode(LockModeType.NONE);
    List<Ticket> tickets = query.getResultList();
    return tickets;
}

play.exceptions.JavaExecutionException: org.hibernate.exception.LockAcquisitionException: 无法在 play.mvc.ActionInvoker.invoke(ActionInvoker.java:237) 在 Invocation.HTTP Request(Play!) 上执行查询 原因:javax.persistence.PersistenceException :org.hibernate.exception.LockAcquisitionException:无法在 org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1317) 的 org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1389) 执行查询。 hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255) 在 models.gasper.snmp.Ticket.findOpen(Ticket.java:337) 在 controllers.Tickets.show(Tickets.java:261)

这是使用休眠生成无锁定提示的正确方法还是我错过了什么?

4

0 回答 0