내 프로젝트에서 봄뿐만 아니라 모두 최대 절전 모드를 사용하고 여기에 거래를 관리 할 수 내 질문은 응용 프로그램에서 트랜잭션을 관리하는 것이 좋을 것입니다.Hibernate Transaction 또는 Spring Transaction을 사용하는 것이 더 좋은 것이 어느 것입니까?
답변
스프링 자체는 트랜잭션을 시작/커밋/롤백 할 수 없습니다. 그의 목적은 트랜잭션 라이프 사이클을 관리하고 지속성 엔진 (Hibernate, JDBC, JPA 등)에 실제 시작/커밋/롤백을 위임하는 데 필요한 보일러 플레이트 코드를 제거하는 것입니다.
이 예제를 보자
Session s = sessionFactory.getCurrentSession();
Transaction tx = s.beginTransaction();
try
{
doSomeStuff();
tx.commit();
}
catch(HibernateException e)
{
tx.rollback();
}
s.close();
이 (당신이 코드를 다시 작성할 필요 JPA로 전환해야하는 경우, 최대 절전 모드 사용) (보일러 플레이트) 트랜잭션에서 작업을 수행하기 위해 표준입니다. 모든 보일러 플레이트 코드를 대체하는 데 사용됩니다
@Transactional
public void doSomeStuff()
{
// your code
}
내가 예를 들어, 주석을 사용하고 있는데 @Transactional
: 스프링
은이 방법으로 표준 코드를 제거 (XML 또는 사용하여 주석을 통해 AOP) 선언적 방법을 사용할 수 있습니다 다른 기능이 있습니다. JPA 로의 전환은 구성 문제 일 뿐이므로 투명합니다. 질문은 정말 복잡하고 질문에 대한 대답은 다음과 같습니다 :
Hibernate Transaction과 Spring Transaction을 "비교"할 수 없습니다. Spring 트랜잭션은 "Spring 트랜잭션 지원"이어야합니다.
스프링 (AOP를 사용하여, @Transactional
주석과 함께 전 세계적으로 또는 구성) 당신이 선언 방법으로 트랜잭션을 관리 할 수 있도록 할 것입니다. JTA를 사용하지 않는다면 트랜잭션을 처리하기 위해 Hibernate에 위임하도록 트랜잭션을 설정합니다.
트랜잭션 처리에는 Spring을 사용하십시오.
답변을 좀 더 탐색 할 수 있습니까? –
http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/htmlsingle/#transaction-declarative 및 http://static.springsource.org/spring/docs/3.2.x를 참조하십시오./spring-framework-reference/htmlsingle/# orm-hibernate-tx-declarative. 좀 더 구체적인 질문이 있다면, 아마도 대답 할 수있을 것입니다. –
- 1. 어느 것이 더 빠를 것입니까?
- 2. 어느 것이 더 빠르다
- 3. 어느 것이 더 효율적입니까?
- 4. 어느 것이 더 낫습니다 : PooledConnectionFactory 또는 CachingConnectionFactory?
- 5. 어느 것이 더 빠릅니까?
- 6. 사용하는 것이 더 좋은 : in_array 또는 array_unique?
- 7. Spring & Hibernate transaction crash
- 8. 어느 것이 더 빠른지, C# 또는 Vb.net?
- 9. 어느 것이 더 좋은 방법입니까? libsvm 또는 svmclassify?
- 10. 어느 것이 더 효율적입니까?
- 11. 어느 것이 더 빠릅니까?
- 12. 어느 것이 더 빠릅니다.
- 13. 스레드 또는 JMS 어느 것이 더 낫습니까?
- 14. 어느 것이 더 jquery 모바일 또는 phonegap
- 15. 다음 중 어느 것이 더 좋은 필터입니까?
- 16. 어느 것이 더 빠릅니다 - WebSockets 또는 Ajax입니까?
- 17. 어느 것이 더 좋은 매크로 또는 문자열 상수입니까?
- 18. 어느 것이 목록 항목에 사용하는 것이 더 낫습니까?
- 19. 어느 시점에서 캔버스를 사용하는 것이 더 좋습니까?
- 20. 어느 것이 더 좋을까요? 스레드 또는 프로세스
- 21. 어느 것이 더 낫습니다? OpenCyc 또는 ConceptNet?
- 22. 어느 것이 더 빠름, getimeofday 또는 clock_gettime입니까?
- 23. 어느 것이 더 빠릅니다 - string + 또는 jQuery?
- 24. 어느 것이 더 좋습니까? setEnabled 또는 setUserInteractionEnabled?
- 25. numpy.max 또는 max? 어느 것이 더 빠릅니까?
- 26. hibernate, spring - transaction
- 27. Spring Cache Abstraction 또는 Hibernate EHCache 중 가장 좋은 것은 어느 것입니까?
- 28. 어느 것이 더 효율적인 코딩입니까?
- 29. 어느 것이 실제 버블 정렬이고 어느 것이 더 낫습니까?
- 30. 어느 것이 더 최적화 되었습니까?
좋은 세부 설명을보세요.하지만 10-12 개의 쿼리를 실행하고 모든 쿼리가 상호 의존적이며 쿼리에 문제가있는 경우 데이터가 @Transactional 표기법을 사용하여 롤백됩니다. –
나는 마지막 코멘트를 얻지 못했습니다 –
네, 데이터는'@ Transactional'을 사용해서 만 롤백 될 것입니다 :'// your code'가 10-12 개의 질의를 포함하고 하나가 실패하면 이전 명령은 모두 버려집니다; '@ Transactional'은 전체 메소드에 적용됩니다. –