본문 바로가기

전체 글

(71)
optional을 제대로 쓰기, jwt 로그인 vs 세션로그인 컨트롤러에선 엔티티쓰면 안된다? jwt : JSON Web Tokens
Singleton Pattern 어떤 클래스에서 오직 하나의 인스턴스만을 생성하고 그 인스턴스를 여러곳에서 공유하여 사용하는 패턴. 자원의 낭비를 줄이고, 객체 간 일관성 유지 위해 사용. 위 예시에서 Singleton클래스는 싱글톤 패턴을 구현하고 있음. 1. 정적 멤버변수로 (static) instance라는 변수 사용하여 유일한 인스턴스를 저장한다. 이 변수는 클래스 레벨에서 한 번만 생성되므로 모든 인스턴스가 공유할 수 있다. 2. 생성자를 private으로 선언하여 외부에선 인스턴스를 직접 생성할 수 없다. 외부에서 새로운 인스턴스를 만들지 못한다. 3. getInstance() 메서드로 유일한 인스턴스 반환. 이 메서드는 클래스 레벨에서 정적으로 (static)선언되어 있으므로 어디서든 호출 가능. 이미 인스턴스가 존재하는 ..
400 Data integrity constraints have been violated. integrity :  진실성/ 의역 : 그 모양대로data integrity : 데이터 완전성constraints : 제약.제약조건 서버가 요청한 변수명이랑, 클라이언트가 보낸 변수명이 안맞거나 데이터타입이 안맞아서 생긴 에러같음
엔티티와 생성자 생성자는 언제 설정 해놔야 하는건지? (필드포함된생성자) 객체가 생성될 때 반드시 필요한 필드가 있다면 생성자를 통해 전달하는 것이 좋을 수 있다. 하지만 그 필드가 나중에 수정될 가능성이 있다면...setter메서드를 통해 .해결.? 클라이언트요청 @Requestbody AddressDto addressDto 로 받고, 사용자가 입력 안한 필드는 그럼 null로 서버에게 전달되는건가? 그럼 컨트롤러에서 AddressDto를 Optional로 받으면.. null인필드가 null말고 is.empty로 되는건가? null을 지양하라고 했는데, 서버->Db 이 과정에서만 없도록 하면ㄷ ㅚ는건가? 아니래 다 지양하래. null은 수많은 상황을 포함하기 때문에 뭔 에러인지 정확히 전달이 안되기 때문? isEmpt..
헷갈리는 엔티티 연관관계 매핑. 사용자가 상품을 위시리스트에 담는 기능을 만들려 한다.User, Wishlist, ProductSize 세가지 엔티티.Wishlist 테이블 중에서, 해당 유저와 해당 프로덕트가 있는지 한번에 찾는 쿼리를 가능케 하고싶다.그럴라면 세가지는 ㄱ어떻게 매핑이 되어야 하는지? 라고 한다.엔티티들을 추상적으로 내마음ㅇ대로 웹페이지 보면서 관계도를 생각하지말고,db에 출력되는 테이블로 생각을 해보자.사람하나당 장바구니 한개만 가질수 있겠지? 당연히? 물건담을때 장바구니 하나로 담으니까?하고 user랑 wishlist를 1:1 관계로 생각했었는데, 이러면 안된다 ㅜ db 테이블로 생각해야한다. wishlist테이블엔 user와 product컬럼이 있다. 동일한 userid가 여러개 들어갈 수 있다. -> 여러개의 ..
local variable ~~~ is reundant. 노란전구 뜨고, local variable productSize is redundant. 라고 수정사항이 떴다. : 로컬 변수가 불필요하다 라는 뜻이다. 가만보니.. 변수선언 없이도 리턴 붙이면 되는거였다. 이렇게 !
@MapsId @JoinColumn @ManyToOne @MapsId("userNo") @JoinColumn(name = "user_no") private User user; --> 아 joincolumn을 안하면 db에서 확인이 안됨. 저거 어노테이션 붙이면 user_no로 컬럼 추가됨.
cascade? (=종속) 캐스케이드 옵션이란, 엔티티의 상태변화를 연관되어있는 엔티티에도 전파 시키는 옵션이다. (부모 엔티티의변화를 자식 엔티티로 전파) onetomany나 manytoone에 적용시킬 수 있다. 기본적으로는 아무것도 전파시키지 않는다. Entity의 상태 1. Transient() : 객체를 생성하고 값을 주어도, JPA나 hibernate가 아무것도 모르는 상태. 즉, db왜 매핑된것이 아무것도 없다. 2. Persistent() : 저장을 하고 나서, JPA가 알고 관리하는 상태. 그러나 save()를 했다고 해서 db에 바로 저장되는 것은 아님. jpa가 persistent상태로 관리하고 있다가, 이후에 데이터를 저장한다. (1차 캐시, Dirty Checking(변경사항 감지), Write Behind..