분류 전체보기

엔티티를 속성을 작성할때 생성자를 빈 생성자를 막고 싶으면 private 대신 proteced를 써야한다 왜냐하면 jpa가 proxy기능 등을 사용할때 private로 막혀있으면 프록시 기능을 쓸 수 없기 때문이다. 따라서 protected로 막을 수 있는데 롬복이 설치되어있다면 proteced대신 @NoArgsConstructor(access = AccessLevel.PROTECTED)로 대신 사용할 수 있다. @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; pri..
https://esoongan.tistory.com/82 [JAVA] 빌더패턴 (Builder Pattern) , @Builder entity나 Dto객체에 값을 넣어줄때 롬복의 빌더 애노테이션(@Builder)을 종종 사용하곤 하는데 완벽히 이해를 하지 못한것같아 정리해보았다! 빌더패턴이란? 디자인패턴중 하나로, 생성과 표현의 분 esoongan.tistory.com 좋은 설명같다.
public class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i = 0; i < n; i++) { answer[i] = (long)x * (i+1); } return answer; } } 주의할점 : X에 곱하기 연산이 오는경우 X를 꼭 long을 바꿔줘야한다. 왜냐하면 자바의 기본 연산은 int이다 따라서 x * (i+1)을 할때 int의 범위를 넘어서면 오버플로우가 일어난다. 따라서 x를 long으로 형변환을 해야한다. 또 주의할점은 (long)(x * (i+1))으로 하면 안된다. 이것은 이미 int로 연산된 상황에서 long으로 형변환 한것이기 때문에 아무런 의미가 없다.
@Transactional @SpringBootTest @Rollback(value = false) class MemberJpaRepositoryTest { @Autowired MemberJpaRepository memberJpaRepository; @Test public void testMember(){ Member member = new Member("memberA"); Member savedMember = memberJpaRepository.save(member); Member findMember = memberJpaRepository.find(savedMember.getId()); assertThat(findMember.getId()).isEqualTo(member.getId()); assertT..
https://photolens.tech/autowired-vs-persistencecontext-for-entitymanager-bean/ @Autowired vs @PersistenceContext for EntityManager bean What is the difference between: @Autowired private EntityManager em; versus: @PersistenceContext private EntityManager em; Both options work in my application, but can I break something by using th… photolens.tech @PersistenceContext allows you to specify which ..
public List findAllByDto_optimization() { List result = findOrders(); //모든 order를 찾음 //모든order의 아이디를 orderIds에 저장 Map orderItemMap = findOrderItemMap(toOrderIds(result)); result.forEach(o -> o.setOrderItems(orderItemMap.get(o.getOrderId()))); return result; } private Map findOrderItemMap(List orderIds) { List orderItems = em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderIt..
public class Order @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL) @JoinColumn(name="delivery_id") private Delivery delivery; @OneToMany(mappedBy = "order",cascade = CascadeType.ALL) private List orderItems = new ArrayList(); public..
조회 하는 엔티티가 컬렉션을 가지고 있으면 컬렉션의 수 만큼 데이터가 뻥튀기된다. 2개의 Order를 json으로 출력하려했지만 Order가 가진 컬렉션 OrderItem때문에 데이터가 뻥튀기되어(Order x OrderItem만큼 뻥튀기됨) 쓸데없는 데이터 중복을 일으키고 말았다. public List findAllWithItem() { return em.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d" + " join fetch o.orderItems oi" + " join fetch oi.item i", Order.class ).getResultList(); } [ { "orderId..
키보드발
'분류 전체보기' 카테고리의 글 목록 (17 Page)