전체 글

https://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/config/EnableJpaRepositories.html EnableJpaRepositories (Spring Data JPA 2.7.3 API) enableDefaultTransactions public abstract boolean enableDefaultTransactions Configures whether to enable default transactions for Spring Data JPA repositories. Defaults to true. If disabled, repositories must be used b..
@Transactional @SpringBootTest @Rollback(value = false) class MemberTest { @PersistenceContext EntityManager em; @Test public void testEntity() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, teamB..
public static Optional ofNullable(T value) { return value == null ? empty() : of(value); } If a value is present, returns the value, otherwise throws NoSuchElementException. Returns: the non-null value described by this Optional Throws: NoSuchElementException – if no value is present API Note: The preferred alternative to this method is orElseThrow(). Optional 설명을 보다 static 옆의 를 보고 관련 내용을 찾아봤다. ..
public Optional findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } Optional을 사용하여 Member를 감싸고 return으로 Optional.ofNullable(member)를 사용해준다. ofNullable: If a value is present, returns the value, otherwise throws NoSuchElementException. Member member = memberJpaRepository.findById(member1.getId()).get(); 꺼낼때는 꼭 .get()으로 꺼내는 것을 잊지말자
단건조회는 public Member find(Long id) { return em.find(Member.class, id); } 엔티티의 아이디로 찾을 수 있지만 where이나 all을 찾으려면 jpql을 사용해야한다. public List findAll() { return em.createQuery("select m from Member m", Member.class).getResultList(); }
@ManyToOne(fetch = FetchType.LAZY) xToMany는 기본 설정이 FetchType.LAZY, 즉 지연로딩이다. 성능 최적화를 하기위해서는 기본적으로 모든 연관 관계가 지연로딩이여야한다. 그래야 각종 최적화 기법을 사용할 수 있다. https://keyboardfoot.tistory.com/96 [JPA] 컬렉션을 가진 엔티티를 fetch 하여 페이징하는 방법 public class Order @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToOn..
em.persist Merge the state of the given entity into the current persistence context. 현제 영속성 컨택스트에 주어진 엔티티의 상태를 병합함(넣음,합침,덮음) em.flush(); Set the flush mode that applies to all objects contained in the persistence context. 영속성 컨텍스트에 포함된 모든 개체에 적용되는 FlushMode로 설정합니다. em.clear(); Remove the given entity from the persistence context, causing a managed entity to become detached. Unflushed changes mad..
package stduy.datajpa.entity; import lombok.*; import javax.persistence.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "userName", "age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String userName; private int age; @ManyToOne @JoinColumn(name = "team_id") private Team team; public Member(Str..
키보드발
개발블로그