1. Security 설정 스프링 시큐리티를 사용하는데 쓸 기능들을 명시해준다 @RequiredArgsConstructor // 스프링 시큐리티 설정 활성화 @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { private final CustomOAuth2UserService customOAuth2UserService; protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .headers().frameOptions().disable().disable() .authorizeRequests() //URL 별 ..
spring
TestCode @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT) @Transactional public class GamesApiControllerTest extends TestCase { @Autowired private TestRestTemplate restTemplate; @LocalServerPort private int port; @Test public void testGamesReResponse() { Integer request = 1; String url = "http://localhost:"+port+"/api/appendGames"; //when Re..
조인 - 객체 끼리 조인을 통해 조인 쿼리문을 사용할 수 있다. • 내부 조인 SELECT m FROM Member m [INNER] JOIN m.team t • 외부 조인 SELECT m FROM Member m LEFT [OUTER] JOIN m.team t • 세타 조인 select count(m) from Member m, Team t where m.username = t.name 조인 - ON 절 1. 조인 대상 필터링 • 예) 회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인 JPQL SELECT m, t FROM Member m LEFT JOIN m.team t on t.name = 'A' SQL SELECT m.*, t.* FROM Member m LEFT JOIN Team t ON m...
페이징 - 데이터 베이스를 조회할 때 n번 부터 m번까지 조회 할 수 있도록 해주는 api 페이징 API • JPA는 페이징을 다음 두 API로 추상화 • setFirstResult(int startPosition) : 조회 시작 위치 (0부터 시작) • setMaxResults(int maxResult) : 조회할 데이터 수 example //페이징 쿼리 String jpql = "select m from Member m order by m.name desc"; List resultList = em.createQuery(jpql, Member.class) .setFirstResult(10) .setMaxResults(20) .getResultList();
문제점 너무 많은 태그들이 나와서 태그 개수를 제한해야함. 해결책 public GameLimitTagListResponseDto(Game entity) { this.gameId = entity.getGameId(); this.gameName = entity.getGameName(); this.gameInfo = entity.getGameInfo(); this.launchDate = entity.getLaunchDate(); this.evaluation = entity.getEvaluation(); this.imgUrl = entity.getImgUrl(); this.videoUrl = entity.getVideoUrl(); this.devCompany = entity.getDevCompany(); thi..
프로젝션 • SELECT 절에 조회할 대상을 지정하는 것 • 프로젝션 대상: 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자등 기본 데이터 타 입) • SELECT m FROM Member m -> 엔티티 프로젝션 • SELECT m.team FROM Member m -> 엔티티 프로젝션 • SELECT m.address FROM Member m -> 임베디드 타입 프로젝션 • SELECT m.username, m.age FROM Member m -> 스칼라 타입 프로젝션 • DISTINCT로 중복 제거 프로젝션 - 여러 값 조회 ※ SELECT m.username, m.age FROM Member m 1. Query 타입으로 조회 Query query = em.CreateQuery("SELECT m...