package com.izouma.nineth.repo; import com.izouma.nineth.domain.Collection; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import javax.transaction.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Optional; public interface CollectionRepo extends JpaRepository, JpaSpecificationExecutor { @Query("update Collection t set t.del = true where t.id = ?1") @Modifying @Transactional void softDelete(Long id); Optional findByIdAndDelFalse(Long id); @Query("update Collection t set t.likes = t.likes + ?2 where t.id = ?1") @Modifying @Transactional void addLike(Long id, int num); @Query(value = "select distinct c from Collection c join Like l on l.collectionId = c.id " + "where l.userId = ?1 and l.del = false and c.del = false") List userLikes(Long userId); List findByScheduleSaleTrueAndOnShelfFalseAndStartTimeBeforeAndDelFalse(LocalDateTime time); }