강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

sjdzn119님의 프로필 이미지
sjdzn119

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강사님 질문 드립니다!

작성

·

156

0

강사님 안녕하세요.

활용2편까지 강의 완강 후 환경설정 부터 이전에 했던 CRUD 코드로 재작성 하면서 복습 하고 있는데,

저희가 실습했던 주문내역보기 << 코드를 작성하는데

service

	@Transactional
	public List<Order> orderList(){
		List<Order> orders = orderRepository.orderList();
		for(Order order : orders) {
			for(OrderItem orderItem : order.getOrderItems()) {
				orderItem.setOrderPrice(orderItem.getItem().getPrice() * orderItem.getCount());
			}
		}
		
		return orderRepository.orderList();
	}

repository

	public List<Order> orderList(){
		return em.createQuery("select o from Order o "
							+ "join fetch o.member "
							+ "join fetch o.delivery ", Order.class)
							.getResultList();
	}

이런식으로 코드 작성을 했는데, 이보다 더 깔끔하게? 최적화를 하려면 어떤 방법이 더 있을까요 ? ?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. sjdzn119님

orderItem.setOrderPrice(orderItem.getItem().getPrice() * orderItem.getCount()); 부분이 잘 이해가 안됩니다.

이렇게 하면 만약에 데이터가 다르면 실제 orderPrice 데이터가 update 될 수 있습니다.

조회 기능의 경우에는 set을 사용하시면 안됩니다.

감사합니다.

sjdzn119님의 프로필 이미지
sjdzn119

작성한 질문수

질문하기