본문 바로가기

전체 글

(172)
24.03.12 키워드 추가 중 오류 오늘은 like 순으로 페이징을 하는 기능을 끝내고 제목의 키워드를 검색하는 기능, 그리고 키워드를 통해 검색한 횟수를 검색 히스토리라고 따로 테이블을 만들어서 거기에 저장한뒤 그걸 통해 인기 검색어를 볼수 있도록 하는 기능을 구현해야 한다. 그리고 이건 그 와중에 발생한 오류들을 해결한것이다. 2024-03-12T18:51:22.042+09:00 ERROR 25096 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.an..
24.03.11 유저랑 병합, 검색진행중 검색기능 만들다가 2024-03-10T22:44:49.453+09:00 ERROR 14344 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.hibernate.LazyInitializationException: could not initialize proxy [cohttp://m.teamsparta.moamoa.domain.product.model.Product#7] - no Session] with root cause org...
24.03.08 데이터베이스, 좋아요에 소프트딜리트 등 오늘은 먼저 팀장님인 선병님과의 합병을 진행했다. 그리고 데이터베이스를 연결했는데, spring: jackson: time-zone: UTC datasource: url: jdbc:postgresql://aws-0-ap-northeast-2.pooler.supabase.com:5432/postgres?prepareThreshold=0 username: postgres.bbiqkxgsemeecxcfodsl password: 비번 # data: # redis: # port: 6379 # host: localhost jpa: open-in-view: false hibernate: ddl-auto: update properties: hibernate: format_sql: false highlight_sql: ..
24.03.07 페이징에 소프트딜리트, 좋아요 작업중 오늘은 먼저 완성한 product와 팀원이 완성한 review를 병합했다. 그동안 병합은 팀장님이 했기 때문에 처음이라 많이 버벅거렸는데, 먼저 이슈를 생성한 뒤 새 브랜치를 만들고, 내가 만든걸 새 브랜치에 풀 리퀘스트로 올린다. 그러면 팀원이 만든거랑 서로 비교가되서 충돌하는게 있으면 병합이 안되는데, 이제 일일히 비교해서 취할 부분만 취하고 아닌건 지워버린다. 여기서 일일히 비교하는게 고역이다. 거기다 중간에 실수로 다른것도 지워버릴 위험도 있다. 그렇게 선택이 끝나면 드디어 머지가 가능해지고, 병합이 끝난다. 페이징에도 소프트 딜리트 적용하는법 리포지터리에 fun findAllByDeletedAtIsNull(pageable: Pageable): Page 서비스임플에 @Transactional ov..
24.03.06 좋아요 시작함 오늘은 오전엔 위대장내시경 때문에 약을 먹었는데, 그래서 계속 화장실을 이용하느라 별 작업을 하진 못했다. 그래도 검사가 끝나고 돌아와서 좋아요 작업에 착수했는데, product랑은 다르게 내용물이 적어서 훨씬 잘될거같은 느낌이 든다. 아직 초기작업중이라 딱히 쓸게 없다!
24.03.05 페이징, 순환오류(StackOverflowError) 해결 오늘은 페이징을 시도해 봤는데, 처음해보는거러 시행착오가 오래 걸렸다. 강의자료를 이상한걸 찾아봐서 쓸모없는 이넘 클래스를 만드는 등 삽질을 하다가 제대로 강의자료를 보고 드디어 만들어낼수 있었다. 우선 필요한게 abstract class QueryDslSupport { @PersistenceContext protected lateinit var entityManager: EntityManager protected val queryFactory: JPAQueryFactory get() { return JPAQueryFactory(entityManager) } } 이건 팀장님이 만들어놓은 것이다. 그 다음엔 interface CustomProductRepository { fun findByPageable(..
24.03.04 상품과 상품재고 외래키를 가진쪽이 JoinColumn 보통은 상품과 상품재고면 외래키를 가진건 상품이지만, 오더랑 연결하려면 외래키는 상품재고가 가져야만 한다고 한다. 그래서 상품재고에 JoinColumn을 쓴다. 그리고 lint를 쓰자는 말이 나와서 id("org.jlleitschuh.gradle.ktlint") version "12.1.0" 이걸 빌드 그래들에 추가하면 된다는데 추가하긴 했는데 뭐가 변했는지 잘 모르겠다. package com.teamsparta.moamoa.product.model import com.teamsparta.moamoa.infra.BaseTimeEntity import jakarta.persistence.* import java.time.LocalDateTime @Entity @Tabl..
소프트딜리트 엔티티에 @Column(name ="deleted_at") var deletedAt: LocalDateTime? = null, 리퀘스트에 val deletedAt: LocalDateTime?, 리스폰스에 var deletedAt: LocalDateTime? 그안의 생성자 안에는 deletedAt = product.deletedAt 서비스에 fun deleteProduct(id: Long): Product 서비스임플에 override fun deleteProduct(id: Long): Product { val product = productRepository.findById(id) .orElseThrow { RuntimeException("Product not found") } product.deleted..