2017-05-16 7 views
0

봄 트랜잭션 관리 서비스에서

@Transactional 
public void operation(Stock val) { 
    Stock findStock = stockDAO.find(val); 
    Product findProduct = productDAO.find(findStock.getProductId()); 
    Item findItem= itemDAO.find(findProduct.getItemId()); 
} 

봄 트랜잭션과 가까운 적절를 엽니 다.

연결이 열리고 DB에 세 시간이 걸리므로 비용이 발생합니까? (연결이 한 번 열렸 음)/OR 우리가 join을 사용해야합니까?

답변

1

제공된 코드에는 3 개의 DB 쿼리가 있습니다. 따라서 하나의 쿼리를 정의하고 거기에 로직을 배치하는 것이 더 좋지만 초기 최적화는 피하십시오.

이 메소드를 자주 호출하지 않으면 3 개의 DB 히트 수를 얻는 것이 좋습니다. 실제 병목 현상을 최적화하십시오.

  1. 당신은 그것을 읽기 전용 당신은 하나 개의 쿼리를 작성할 수 있습니다

  2. @Transactional (읽기 전용 = True)로 가입 할 수 있으며, 한 번 DB를 공격하는 방법 :

    여러 가지 방법이 있습니다 .

  3. 또는 결과를 캐싱 될 수있다 도움이 될 것입니다