- JPA Auditing
- Spring Data JPA 에서 시간에 대해서 자동으로 값을 넣어주는 기능
- BaseTimeEntity 생성
@MappedSuperclass // JPA Entity 클래스들이 상속받을 경우 필드도 컬럼으로 인식
@EntityListeners(AuditingEntityListener.class) //Auditing 기능 추가
@Getter //Getter 추가, 롬복
public class BaseTimeEntity {
@CreatedDate //생성 시간
private LocalDateTime createdDate;
@LastModifiedDate //수정 시간
private LocalDateTime modifiedDate;
}
- TimeTestEntity 생성
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "Times")
public class TimeTestEntity extends BaseTimeEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
- TimeTestRepository
public interface TimeTestRepository extends JpaRepository<TimeTestEntity, Long> {
}
- 메인 클래스에 어노테이션 추가
@EnableJpaAuditing //JPA Auditing 어노테이션 활성화
@SpringBootApplication
public class CoffeeShopApplication {
public static void main(String[] args) {
SpringApplication.run(CoffeeShopApplication.class, args);
}
}
- 테스트 코드 : TimeTestEntityTest
@SpringBootTest
class TimeTestEntityTest {
@Autowired
TimeTestRepository timeTestRepository;
@Test
@DisplayName("BaseTimeEntity_테스트")
public void TimeTest() {
LocalDateTime now = LocalDateTime.now(); //로컬 컴퓨터의 현재 날짜와 시간정보를 now 변수에 저장
timeTestRepository.save(new TimeTestEntity());
List<TimeTestEntity> times = timeTestRepository.findAll();
TimeTestEntity time = times.get(0);
System.out.println("Create Date = " + time.getCreatedDate());
System.out.println("Modified Date = " + time.getModifiedDate());
assertThat(time.getCreatedDate()).isAfter(now);
assertThat(time.getModifiedDate()).isAfter(now);
}
}
GitHub - Pearlmoon997/CoffeeShop: CoffeeShop
CoffeeShop. Contribute to Pearlmoon997/CoffeeShop development by creating an account on GitHub.
github.com
'프로젝트_ 커피주문 서비스' 카테고리의 다른 글
OrderProduct_ SELECT 테스트 (0) | 2022.07.30 |
---|---|
OrderDate 삽입 (0) | 2022.06.20 |
Member_ CRUD (API Controller) (0) | 2022.06.15 |
Product_ Update, Delete (API Controller) (0) | 2022.06.15 |
Product_ Create, Read (API Controller) (0) | 2022.06.14 |