-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#118 [fix] 디자이너 회원가입 api 수정 #120
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작업하시느라 고생하셨습니다
코맨트 확인해주세요
@NotNull | ||
private String introduction; | ||
|
||
@NotNull |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p2
여기서는 not null 제약 조건을 제거하지 않아도 된다고 생각합니다
String kakaoId = kakaoSocialService.getIdFromKakao(baseUrl, code); | ||
|
||
User user = userRepository.findById(userId).orElseThrow(() -> new NotFoundException(ErrorCode.USER_NOT_FOUND_EXCEPTION)); | ||
Designer designer = designerJpaRepository.findById(userId).orElseThrow(() -> new NotFoundException(ErrorCode.DESIGNER_NOT_FOUND_EXCEPTION)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p1
조회 할 디자이너는 아직 디비에 없는 상태입니다.
user를 조회한 뒤 user를 업데이트 하고,
designer를 생성하는 식으로 수정해야할 것 같습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다~~! 저도 이제 언능 수정해야겠네요...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 로직을 구현하다가 Designer 객체를 만들때 새로운 User 객체가 한번더 만들어 지는 상황을 맞이 했습니다!
혹시 기존의 로그인시 만들어진 User 객체를 참조하는 Designer 객체만 만들 수 있는 방법 같이 생각해보면 좋을것 같아요!
…into fix/#118 # Conflicts: # src/main/java/com/moddy/server/domain/user/User.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작업하시느라 수고하셨습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인했습니다~!!!! 대단히 감사합니다 대단히 고맙습니다
|
||
public interface DesignerJpaRepository extends JpaRepository<Designer, Long> { | ||
@Modifying(clearAutomatically = true) | ||
@Query(value = "insert into Designer (id, hair_shop_address, hair_shop_detail_address, hair_shop_name, instagram_url, naver_place_url, introduction, kakao_open_chat_url) VALUES (:id, :hairShopAddress, :hairShopDetailAddress, :hairShopName, :instagramUrl, :naverPlaceUrl, :introduction, :kakaoOpenChatUrl)", nativeQuery = true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
디자이너 DB 컬럼 쿼리 확인이요!
@Query(value = "insert into Designer (id, hair_shop_address, hair_shop_detail_address, hair_shop_name, instagram_url, naver_place_url, introduction, kakao_open_chat_url) VALUES (:id, :hairShopAddress, :hairShopDetailAddress, :hairShopName, :instagramUrl, :naverPlaceUrl, :introduction, :kakaoOpenChatUrl)", nativeQuery = true) | ||
void designerRegister(@Param("id") Long id, @Param("hairShopAddress") String hairShopAddress, @Param("hairShopDetailAddress") String hairShopDetailAddress, @Param("hairShopName") String hairShopName,@Param("instagramUrl") String instagramUrl,@Param("naverPlaceUrl") String naverPlaceUrl,@Param("introduction") String introduction,@Param("kakaoOpenChatUrl") String kakaoOpenChatUrl); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
디자이너 Entity 컬럼값 확인이요!
관련 이슈번호
해결하는 데 얼마나 걸렸나요? (예상 작업 시간 / 실제 작업 시간)
해결하려는 문제가 무엇인가요?
어떻게 해결했나요?
Modifying 어노테이션과 JPA 캐싱: Modifying 어노테이션은 데이터베이스에 대한 변경작업(INSERT, UPDATE, DELETE)을 수행하는 JPQL(JPA Query Language) 또는 SQL 쿼리에 사용됩니다. JPA는 일반적으로 일련의 변경 사항을 영속성 컨텍스트(persistence context)에 캐싱하고, 트랜잭션이 완료될 때까지 실제 데이터베이스에 반영하지 않습니다. 이 때문에, 데이터베이스 변경 후 즉시 새로운 데이터를 조회하려고 할 때 문제가 발생할 수 있습니다. 변경 작업 후에 영속성 컨텍스트가 아직 최신 상태로 업데이트되지 않았기 때문에, 새로운 데이터를 찾지 못할 수 있습니다.
clearAutomatically = true의 역할: Modifying(clearAutomatically = true)를 사용하면, 쿼리 실행 후 JPA의 영속성 컨텍스트를 자동으로 클리어합니다. 이는 변경 사항을 데이터베이스에 즉시 반영하고, 영속성 컨텍스트를 최신 상태로 갱신하는
효과가 있습니다.
즉, clearAutomatically = true 옵션은 변경된 데이터가 데이터베이스에 반영된 직후에 영속성 컨텍스트를 초기화하여 변경 사항을 반영합니다. 이로 인해 이후에 수행되는 조회 작업에서 최신 데이터를 정확히 가져올 수 있게 됩니다.