
@Entity @NamedQuery( name= "Member.findByUsername", query = "select m from Member m where m.username = :username" ) public class Member extends BaseEntity{ List resultList = em.createNamedQuery("Member.findByUsername",Member.class) .setParameter("username" , memberA.getUsername()).getResultList(); for (Member o : resultList) { System.out.println("Member " + o.getUsername()); } 이런식으로 사용이 가능하다. 사용..

as m 부분 같은 별칭은 fetch join에서는 원칙적으로 사용할 수 없다. 페치 조인에서 페이징을 쓸 수 없는 이유는 일대 다이기 때문에 데이터가 늘어나게 되는데. 이 경우 만약 팀A|멤버1 팀A|멤버2 팀B|멤버3 인 경우 2개만 가져오게끔 페이징을 한다면 팀A만 2개 가져오니 우리가 원래 원하는 팀에 대한 페이징이 불가하다. 만약 다대일로 만들어 페이징을 사용한다면 문제가 없다. 혹은 과감하게 join 없이 team만 불러서 페이징을 넣은 후에 member를 불러 사용한다. 그럼 member를 찾을 때마다 쿼리를 날려야 할텐데 트래픽이 또 발생해 버린다. 이런 때에 @BatchSize를 사용한다. @BatchSize(size = 100) @OneToMany(mappedBy = "team") pr..

String query = "select m from Member m "; List resultList = em.createQuery(query,Member.class).getResultList(); for (Member o : resultList) { System.out.println("Member " + o.getTeam().getName()); } 만약 위의 코드처럼 날렸을 경우 TEAM이 지연로딩으로 되어있을 경우 필요할 때마다 쿼리를 날리게 된다. 같은 team이라면 1번에 1차캐시로 소화되어 문제가 없겠지만 100개의 다른팀으로 표시 된다면 트래픽이 많이 발생할 것이다. 이럴경우 join fetch를 사용해야 한다. String query = "select m from Member m join..

function 등록해서 사용하기 public class MyH2Dialect extends H2Dialect { //function 등록 public MyH2Dialect() { registerFunction("group_concat",new StandardSQLFunction("group_concat", StandardBasicTypes.STRING)); } } persistence.yml에 등록해준다. String query = "select function('group_concat',m.username) from Member m "; List resultList = em.createQuery(query).getResultList(); 이렇게 사용이 가능해진다.
- Total
- Today
- Yesterday
- JPA
- 향해플러스백엔드
- 컨트
- 향해플러스
- 항해99
- 향해99
- filter
- 리터럴
- 스프링부트
- React
- 예외처리
- 로그인
- 항해플러스
- SpringBoot
- 인터셉터
- 백엔드 개발자 역량
- thymleaf
- HTTP
- hypertexttransferprotocol
- exception
- BindingResult
- Java
- reject
- rejectValue
- jpa api
- ArgumentResolver
- 백엔드 개발자 공부
- 스프링공부
- Intercepter
- react실행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |