게시글
스터디
모집완료
조영호 저 [오브젝트] 책 스터디
- 2
- 5
- 667
질문&답변
양방향 편의 메서드에서 필드에 직접 접근하는 문제
질문에서 유지보수적인 측면에서 필드접근이 아닌 getter 와 setter 를 활용하는게 더 좋다고 생각하시는 이유도 알려주시면 감사하겠습니다! (궁금해서 여쭤봐요)
- 0
- 2
- 492
질문&답변
엔티티 클래스 개발 2 질문
2023-08-16 15:16:39.542 ERROR 6060 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: jpabook.jpashop.domain.Order.member collection 이 아닌 곳에서 @xxxToMany 를 사용하고 있는 것 같습니다. Order 클래스의 member 는 컬렉션이 아니라 연관관계를 @xxxToOne 으로 맺어야 해결될 것 같네요
- 0
- 3
- 612
질문&답변
h2 테이블 생성이 안됩니다ㅠㅠ
ddl-auto 옵션 설정확인 후 애플리케이션 재실행 해보시면 해결 될 것 같습니다. ddl-auto 옵션 설정 방법 application.yml 혹은 application.properties // yml 기준 spring: jpa: hibernate: ddl-auto: create
- 0
- 2
- 473
질문&답변
서블릿 response가 작동하지 않습니다.
super.service(request, response) 를 제거하시면 될 것 같습니다.
- 0
- 2
- 526
질문&답변
멀티 쓰레드와 싱글톤 스레드
답변 감사합니다. 링크를 통해 추측한 내용은 Servlet 은 힙 영역에 저장되어 애플리케이션의 모든 영역에서 접근 가능하고, 각 Thread 들은 Servlet 으로부터 HttpRequest, HttpResponse 정보를 전달받아 stack 영역에 두고 사용함으로써 Thread 사이의 동시성 이슈를 해결할 수 있다고 생각되는데요.HttpRequest 와 HttpResponse 는 Servlet 에서 생성해서 각 Thread 로 전달할 때 동시성 이슈가 생기지는 않나요? 예를들어 다음과 같은 순서로 진행되는 경우입니다. 1번 요청 진입Servlet 에서 1번 HttpRequest 객체 생성 (Servlet 이 HttpRequest 를 스레드에 전달하기 전) 2번 요청 진입Servlet 에서 2번 HttpRequest 객체 생성 위와 같은 경우에는 1번 요청은 무시될 수 있을 것 같다는 생각이 들어서요.
- 0
- 2
- 394
질문&답변
chunkSize 질문입니다.
chunkSize 가 item 을 나누는 단위가 되는군요 감사합니다 :)
- 0
- 2
- 571
질문&답변
spring boot 3.0 버전 부터 cli 를 통한 run 명령 사용불가
답변 감사합니다 :)
- 0
- 2
- 618
질문&답변
FK 를 양쪽에서 관리하는 경우
질문이 명확하지 않았네요 ㅠㅠ 죄송합니다. 16분 30초 쯤 Team 도 연관관계의 주인이되고 Member 도 연관관계의 주인이 되는 상황에서 야기되는 문제들이 궁금합니다. @Entity @NoArgsConstructor @AllArgsConstructor @Builder @Getter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; @ManyToOne @JoinColumn(name = "team_id") private Team team; } ---------------- @Entity @Getter @Builder @NoArgsConstructor @AllArgsConstructor public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany @JoinColumn(name = "team_id") private List members = new ArrayList(); } -------------- @SpringBootTest @Transactional @Rollback(false) class MemberTest { @Autowired EntityManager em; @Test void member(){ Member member = Member.builder() .username("jaden") .build(); em.persist(member); Team team = Team.builder() .name("teamA") .members(new ArrayList()) .build(); team.getMembers().add(member); em.persist(team); em.flush(); em.clear(); Team team2 = Team.builder() .name("teamB") .members(new ArrayList()) .build(); em.persist(team2); Member member2 = Member.builder() .username("m2") .team(team2) .build(); em.persist(member2); } } 문제점이 어떻게 일어날지 궁금해서 테스트를 돌려봤는데 (사진) 기대했던 대로 입력이 되는 것 같아 질문드립니다 !
- 0
- 3
- 206
질문&답변
세션에서 넘어오는 데이터 바인딩
감사합니다. 답변과 이어지는 강의를 참고해 다음과 같이 수정해 테스트 코드를 작성했습니다. 혹시나 해서, 코드 남겨놓도록 하겠습니다. @Controller @SessionAttributes("event") public class TestController { @PostMapping("/session/input") @ResponseBody public Event sessionInput(Model model){ Event event = new Event(); event.setName("jaden"); model.addAttribute("event", event); return event; } @PostMapping("/session") @ResponseBody public Event sessionTest(@ModelAttribute Event event){ return event; } } @WebMvcTest class TestControllerTest { @Autowired MockMvc mockMvc; @Test void sessionTest() throws Exception { MockHttpServletRequest request = mockMvc.perform(post("/session/input")) .andExpect(status().isOk()) .andReturn().getRequest(); assertThat(request.getSession().getAttribute("event")).isNotNull(); mockMvc.perform(post("/session") .session((MockHttpSession) request.getSession()) .param("limit", "10")) .andDo(print()); } } MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Type:"application/json", Cache-Control:"no-store"] Content type = application/json Body = {"id":null,"name":"jaden","limit":10} Forwarded URL = null Redirected URL = null Cookies = []
- 0
- 3
- 364