본문 바로가기

java9

TIL 230705 : PK FK N:M 중간테이블 매핑하며 (해시태그 게시글 작성) 작업내용 오른쪽과 같이 Tag(HashTag에서 변경 : Post가 N:M 관계여서 중간에 받아주는 TagPostTable 중간테이블을 만들었다. 정리하자면 Post랑 Tag의 외래키를 갖는 TagPostTable Entity를 하나 더 만들고 맵핑하였다. 그러고 어김 없이 오류가 났는데 그로인해 배운 원칙을 정리하자면 아래와 같다. 배운점 1. FK를 가지고 있는 객체를 Repository에 저장할 때는 FK로 매핑된 객체들이 PK를 가지고 있어야 한다. 쉽게 말해, Tag와 Post객체의 각 PK를 FK로 가지는 TagPostTable 객체를 만들고 DB에 save할때 각 객체들이 PK값을 가지고 있어야 한다. tagPostTable 객체를 DB에 저장하기 전이다. 아직 id(PK)값은 null이고,.. 2023. 7. 6.
TIL 230704 : @Getter의 중요성 (허무한 단순 오류 해결) 문제발생 Reply 엔티티 작업하다 또 다시 이전처럼 Reponse가 오질 않았습니다. 디버깅을 돌려봅니다. 우선 claims까지는 잘가져옵니다. 갑자기 hibernate_interceptor가 나오고 원래의 멤버들은 null로 나옵니다. User객체를 다르게 받아오고 있다. 시도 1. UserRepository를 제대로 주입 못 받고 있다? 여기에는 Bean이 주입이 안되어서 그런건가 Repository를 잘 못 가져오는 건지 생각했습니다. 다른 곳은 이렇게 옆에 Bean 주입받는게 보이는데 말이죠. 근데 이는 @RequiredArgsConstructor 어노테이션의 영향이고 크게 중요한건 아니었습니다. 시도 1-2. 다른 객체가 생성되서 그런가 그래서 저 뒤에 참조값이 다른 것은 아닌가 추측해봤습니다.. 2023. 7. 4.
TIL 230623 : ERD를 알아보자 (Entity Relation Diagram) ERD? 개인과제로 ERD제출을 같이 요구 받았다. ERD?? 처음 들어봤다. 예전 특강때 보니까 이미 아는 사람이 꽤 있어보이기도 했지만 나는 처음이었고, 업무에 있어서 꽤나 잘 배워두고 넘어가면 좋을 것 같아서 미루다가 오늘 시간 좀 내서 정리해보며 실습해봤다. 우선 직접 만들어 본 결과물. 쉽게 말하자면 자료구조? 각 데이터 클래스들, Entity들의 관계도를 다이어그램으로 나타낸 것이다. Entity, Attribute, Relationship 도형이 이렇게 3가지이다. Entity : 하나의 객체가 되는 데이터 Attribute : Entity에 거기에 속해있는 속성들 테이블 상에서 칼럼이 되는 속성 Relationship : Entity 간의 관계성 PK Attribute안에 밑줄이 그어진 것.. 2023. 6. 23.
TIL 230621 : 뭘 모르면 사소한 것에도 휘둘린다 문제 발생 DataIntegrityViolationException: not-null property references a null or transient value : com.sparta.springauth.entity.User.email] with root cause 분명 똑같이 했다고 생각했는데 오류가 뜨면 너무 허망하다. User 엔티티를 db에 저장하는 과정에서 해당 오류가 떴다. Not NULL 칼럼인 email에 NULL이 들어왔다는 뜻. 시도 RequestDto에는 잘 들어왔다 멤버 값도 잘 받아져 있다 email칼럼만의 문제는 아니다 이렇게 바꿔보면 이번엔 password가 문제로 나온다. DataIntegrityViolationException: not-null property ref.. 2023. 6. 21.
TIL 230619 : Spring은 그저 도구. (IoC/DI, 3 Layer, 영속성 컨텍스트(flush commit 차이), 클래스 리터럴, URL주의점.. 강의를 집중해서 듣는 기간에는 새로운 정보들이 홍수처럼 쏟아진다. 새롭게 배운 내용, 배우면서 심화하고 싶은 내용, 어렵진 않아도 복잡한 내용 등. 이 기간에만 다양한 내용들을 포스팅에 정리하며 체득하고자 한다. 처음 배운 개념들 3 Layer Architecture 패턴이 보이니까 개발자 조상님들이 나눠놓음. Controller : 프론트엔드에서 받은 http요청들이 한 눈에 보기 쉽다. 데이터를 넘겨받는 방법들이 몇가지 있다. Service : 거의 주요하게 개발될 파트. 실제 서비스 관련된 로직들이 담긴다. Repository : DB와 연동되는 로직들. Spring Data JPA를 통해 편리하게 이용이 가능하다. Spring Data JPA 사용방법이 조금 독특하다. 해당 Repository클래.. 2023. 6. 20.
TIL 230601 : ArrayList와 함께한 오늘의 삽질들. Product객체를 받는 ArrayList를 생성하고, add를 하려는데 빨간불이 뜬다. add를 왜 해석할 수 없을까. 임의의 메소드 안으로 가져와보면 작동한다. 여러가지 시행착오를 시작해봤다. 두가지 빨간줄이 떴다. 1. 메소드 dd()에 '; is expected' 2. main메소드안으로 가져와보면 add는 읽는데 객체를 못 읽는다. 1. dd(); : 저 영역은 main클래스안에 static main 메소드이다. 즉, 메소드 안에서 메소드를 정의하려해서 오류가 났다. 다른 곳에 dd(){ } 형태로 메소드를 만들고, 만들어진 메소드를 dd();형태로 실행만 할 수 있다. 굳이 예시를 해보자면, 다른 클래스에 선언하고, main클래스에서 메소드로서 기능한다. 객체를 만들지 않고 우선 실행해보려고 .. 2023. 6. 1.