2009-08-05 2 views
4

이 메서드에는 @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)을 사용해야하는데 많은 양의 데이터를 반환하는 메서드가 있습니다. 메소드는 JPA 쿼리를 수행하여 테이블의 전체 내용 (약 1000 행)을로드합니다.EJB 3 읽기 전용 메서드의 트랜잭션 특성

+0

Stateless Bean은 1000 개의 행을 반환하거나 처리합니까? –

+0

그냥 반환, 데이터베이스에서로드 및 반환 –

답변

3

이 방법에 대한 클라이언트는 이미 트랜잭션에 있습니까? NotSupported를 사용하면 호출자 트랜잭션이 일시 중단됩니다. 그렇지 않다면, 트랜잭션 유형으로 Never를 입력하십시오. 호출자가 트랜잭션 내부에서이 메소드를 호출하지 않아도된다는 사실을 알게 된 이후로 결코 좋지 않습니다. 보다 솔직한 계약.

우리는 더 많은 처리를하는 메소드에 대해 Never를 사용하여 개발자가 트랜잭션에 이미 관련되어있는 경우 호출하지 말고 바로 박쥐를 인식 할 수 있도록합니다. 희망이 도움이됩니다.

2

거의 모든 사용자가 의 거래에 참여하지 않기 때문에 동의하지 않으려합니다. 모든 시스템. 가장 좋은 방법은 지원되지 않는을 사용하여 발신자가 이미 트랜잭션에있는 경우 트랜잭션이 일시 중단되도록하는 것입니다. NO TRANSACTION 범위에있는 일련의 호출이 없으면 결코 문제가되지 않습니다. 간단히 말해, 지원되지 않는 유형은 사용해야하는 유형입니다.