오늘은 먼저 팀장님인 선병님과의 합병을 진행했다. 그리고 데이터베이스를 연결했는데,
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: true
use_sql_comments: true
logging:
level:
org:
hibernate:
SQL: debug
orm:
jdbc:
bind: error
springframework:
security: debug
데이터베이스를 연결해 ddl auto로 직접 입력할 필요 없이 테이블을 자동 생산하는 방식을 썻고,
그동안 user이 없어서 제대로 제작하지 못했던걸 db에서 직접 유저아이디를 만들어 집어넣는걸로 해결해서 유저를 넣은 좋아요를 제작할수 있게 되었다. 좋아요는 리뷰 좋아요와 상품 좋아요의 생성과 삭제로 만들어서 리뷰, 상품과 각각 연결 시켰다. 그리고
@Transactional
override fun addLikeToProduct(productId: Long, userId: Long) {
val product = productRepository.findById(productId)
.orElseThrow { throw ModelNotFoundException("Product", productId) }
if (product.deletedAt != null) {
throw Exception("없는 상품입니다")
}// 이게 소프트 딜리트 감지임
val user = userRepository.findById(userId)
.orElseThrow { throw ModelNotFoundException("User", userId) }
if (likeRepository.findByProductAndUser(product, user) == null) {
likeRepository.save(Like(product = product, user = user, status = true))//여기가 널이여야만 생성하는거
// 이게 증가 로직임
product.likes++
productRepository.save(product)
}
}
이런식으로 좋아요에도 소프트 딜리트가 된것에 좋아요를 넣을수 없게 수정했다.
그리고 상품도 제대로 셀러아이디를 받도록 수정했다. 셀러도 db에서 직접 넣으면 되니까.