[spring]양방향 관계 이점,FK(외래키) 참조방법
2022. 10. 2. 19:33
Spring
양방향 관계 @OneToMany에서 앞에 나온 단어가 자신의 관계상태를 의미한다. 게시판 게시판_이미지 관계에서 게시판이 1 게시판_이미지는 N 의 관계이다. 따라서 게시판에 @OneToMany 게이판_이미지에 @ManyToOne이 들어가야한다. 양방향 관계 이점 board와 board_img 에서 양방향 관계를 설정해 두면 이점이 있다. @JsonIgnore @OneToMany(mappedBy = "board", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) @OrderBy("id asc") // 댓글 정렬 private List boaImgs = new ArrayList(); board 객체 에서 그 board에 해당 하는 img들을 한번에 조회를 할..
[spring]@NoaArgsConstructor/@AllArgsConstructor
2022. 10. 2. 18:12
Spring
@NoArgsConstructor @AllArgsConstructor @NoArgsConstructor 는 기본 생성자를 만들라는 의미이다. @AllArgsConstructor 는 모든 필드를 넣은 생성자를 만들라는 의미이다.
[spring]builder 패턴,이미지 경로
2022. 10. 2. 18:08
Spring
builder 패턴 builder 패턴의 장점 필요한 데이터만 설정할 수 있음 유연성을 확보할 수 있음 가독성을 높일 수 있음 변경 가능성을 최소화할 수 있음 여기서 필요한 데이터만 설정할 수 있음을 바탕으로 자동으로 설정해 주는 기능으로 PK값은 제외한채 생성자를 만들어 줄 수 있다. BoaImg boaImg = BoaImg.builder() .orgName(orgName) .saveName(saveName) .savePath(savePath) .board(board).build(); 자동 설정되는 PK값은 언제 생성되는가? @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; 위의 코딩에서 자동으로 생성되는 PK값 ID는 아래와 같..
[spring]@ModelAttribute/게시글 이미지 업로드
2022. 9. 29. 21:05
Spring
1. @ModelAttribute의 대상과 검증 @PostMapping("url") public String 컨트롤러메소드(Member member){ return "..."; } 컨트롤러 메소드에 아규먼트로 Entity 객체를 줘도 바인딩이 되는 이유는? 위와 같은 경우 Member member 앞에 @ModelAttribute("member")가 생략된 상태 해당 메소드를 사용하는 스프링mvc의 핸들러 어뎁터에서 해당 member 객체에 파라미터명이 일치하면 setXXX()를 해줌 (" @@@ ") 여기서 @@@값으로 ModelAttribute 속성명이 정해지는 것이다. 그렇다면 검증처리는 어떻게 해야될까? 검증처리는 보통 폼태그에서 넘어온 파라미터나 데이터들이 올바른지 검증하는 것 create와 u..

[Spring]RequestParam/PathVariable
2022. 9. 29. 09:22
Spring
RequestParam 과 PathVariable의 차이 변수를 넘길때 요청 url 부분의 형식을 결정 할 수 있다. /market/detail?post_id=1111 /market/detail/1111 쿼리스트링으로 넘긴다면 controller 부분에서 @Requestparam 으로 받아와야 한다. 반면, PathVariable로 넘기면 Mapping되는 url 부분에 {}를 사용해서 명시해 줘야 한다. 아래의 예제를 참고해 보자 ()안에 값이 {}에 없으면 쿼리스트링으로 넘어가진다. PathVariable로 변수로 넘겨오는 방법 view단에서 넘기는 방법 { }친 부분에 변수가 담겨져서 넘어간다. {}부분에는()안에 들어간 값이 담긴다. 타임리프 사용법 참고 Mapping url 작성 방법 /mark..
Timestamped 사용법
2022. 9. 1. 19:36
Spring
@Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class TimeStamped { @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime modifiedAt; } public class Board extends TimeStamped{ 잊지말고 프로젝트명Application에 @Enablescheduling 랑 @EnableJpaAuditing 반영하기 @EnableScheduling @EnableJpaAuditing @SpringBootApplication public class WiyaAppli..

[Spring]RDBMS,JPA__개발공부 96일차
2022. 8. 9. 16:56
Spring
spring.h2.console.enabled=true =>h2 콘솔 볼수 있게 해줘 spring.datasource.url=jdbc:h2:mem:testdb => 스프링의 데이터 소스(데이터베이스)를 h2로 할꺼야 라는 의미 http://localhost:80 의 의미 localhost는 내 컴퓨터를 의미하고 여기에는 무수히 많은 방이 있는데 그중 80번째 방에 스프링 서버를 띄워 놨어 라는 의미이다. localhost:80/h2-console 접속 후 Connect 버튼 누르기 h2 웹 콘솔 띄우면서 에러 발생 'C:\Users\사용자명' 폴더 안에 test파일이 없어서 발생한 문제이다. => 'C:\Users\사용자명' 안에 빈 텍스트 파일을 생성하고 파일명을 확장자를 포함한 'test.mv.db'..

[Spring]환경설정, gradle(1주차)__개발공부 95일차
2022. 8. 9. 01:48
Spring
좌측베너 : Spring Initializr 선택 Group : 우리가 쓰는 주소를 거꾸로 적은것 Artifact : 프로젝트의 이름 JDK : 알맞은 JDK 설정 JAVA : 8 설정 TYPE : GRADLE 설정 Packaging : Jar 선택 Next 검색창에 다섯개 검색하고 추가 Lombok Spring Web Spring Data JPA H2 Database MySQL Driver Create 인텔리제이 포트 변경방법 private는 왜 쓰는가? 그냥 데이터를 누구나 쉽게 바꾸면 문제가 발생한다. 아무나 데이터를 막 바꾸지 못하게 하기 위함이다. private로 선언한 필드명의 값을 설정하거나 가져오기 위해 필요한 것이 setter, getter다. Rest의 의미 서버의 응답이 JSON 형식..