对于在频繁更新的表上运行的某些查询,我一直在尝试将锁定类型设置为无,但我一直在 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)
这是使用休眠生成无锁定提示的正确方法还是我错过了什么?