I was able to reproduce your problem using other databases (SQL Anywhere in my case).
Hibernate JavaDocs, , - , JPA setLockMode .
, Hibernate QueryHints :
NATIVE_LOCKMODE:
SQL-, JPA , Query.setLockMode(javax.persistence.LockModeType) IllegalStateException, .
QueryHints, - :
@Transactional(readOnly=true)
public void testMethod1(String query) {
Query q = entityManager.createNativeQuery(query);
q.setHint(QueryHints.NATIVE_LOCKMODE, LockModeType.NONE);
List<Object[]> result = q.getResultList();
}
, @TransactionAttribute , , :
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void testMethod1(String query) {
Query q = entityManager.createNativeQuery(query);
q.setHint(QueryHints.NATIVE_LOCKMODE, LockModeType.NONE);
List<Object[]> result = q.getResultList();
}
, , , !