코딩 공부
간단한 게시물 작성,조회시 자동날짜 나오게하기
챠나
2023. 4. 17. 14:23
<Main.java>
package com.example.hanghae_blog;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@EnableJpaAuditing //Jpa Auditing 활성화
@SpringBootApplication //spring data jpa에서 audit은 시간을 자동으로 넣어주는 기능
public class HanghaeBlogApplication {
public static void main(String[] args) {
SpringApplication.run(HanghaeBlogApplication.class, args);
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@EnableJpaAuditing //Jpa Auditing 활성화
@SpringBootApplication //spring data jpa에서 audit은 시간을 자동으로 넣어주는 기능
public class HanghaeBlogApplication {
public static void main(String[] args) {
SpringApplication.run(HanghaeBlogApplication.class, args);
}
}
<BaseTimeEntity.java>
package com.example.hanghae_blog.entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@Getter
@MappedSuperclass // Entity 클래스가 BaseTimeEntity를 상속받을 때, createDate, modifiedDate를 인식할 수 있도록 하는 설정
@EntityListeners(AuditingEntityListener.class) // 자동으로 값을 넣어주도록 하는 annotation
public abstract class BaseTimeEntity {
@CreatedDate // 데이터 생성할 때 시간 자동 생성
private LocalDateTime createdDate;
@LastModifiedDate // 데이터 수정할 때 시간 자동 수정
private LocalDateTime modifiedDate;
}
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@Getter
@MappedSuperclass // Entity 클래스가 BaseTimeEntity를 상속받을 때, createDate, modifiedDate를 인식할 수 있도록 하는 설정
@EntityListeners(AuditingEntityListener.class) // 자동으로 값을 넣어주도록 하는 annotation
public abstract class BaseTimeEntity {
@CreatedDate // 데이터 생성할 때 시간 자동 생성
private LocalDateTime createdDate;
@LastModifiedDate // 데이터 수정할 때 시간 자동 수정
private LocalDateTime modifiedDate;
}
자동날짜를 위한 Entity 만들어서 그안에 넣어주고
<Post.java>
@Entity
@Getter
@NoArgsConstructor
public class Post extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO) // id 자동 증가
private Long id;
@Column(nullable = false) // 반드시 적어라
private String username;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String content;
@Column(nullable = false)
private String password;
public Post(PostRequestDto postRequestDto) {
this.username = postRequestDto.getUsername();
this.title = postRequestDto.getTitle();
this.content = postRequestDto.getContent();
this.password = postRequestDto.getPassword();
}
}
@Getter
@NoArgsConstructor
public class Post extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO) // id 자동 증가
private Long id;
@Column(nullable = false) // 반드시 적어라
private String username;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String content;
@Column(nullable = false)
private String password;
public Post(PostRequestDto postRequestDto) {
this.username = postRequestDto.getUsername();
this.title = postRequestDto.getTitle();
this.content = postRequestDto.getContent();
this.password = postRequestDto.getPassword();
}
}
Post 에 extends해주기 까지 완료했는데...
코드를 잘 적었다 생각했는데 날짜가 왜 자꾸 null인거야ㅠㅠㅠㅠㅠㅠㅠ
구글링해도 다 똑같이 했는데 대체 뭐가 문젠지 1도 모르겠읍니다 !!!!!!!!!!!!!!!!!!!!!!!!!
아직도 null 나오는중ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ미쳐버리겠음
2시간째 답을 못찾는 중 ^^
GPT 친구가 이거 설정해야한다고 해서 저것도 추가해서 설정해봄
spring.data.jpa.repositories.enabled=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Seoul
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Seoul
응 실패
와 진짜 똥멍청이 같은 일이 있다니;;;;;
포스트맨이 아니라 h2-console창으로 확인하니 너무나도 잘들어오고 있었음;;;;;
너무 소름돋는다....
나는 왜 이것을 생각못하고 포스트맨에 절절 매며 하루를 날려버렸을까..........
덕분에 강의도 2번씩 돌려보고 더 개념을 잘챙길 수 있었던거같다^^^^^^^^^^^^^^^
근데 포스트맨에는 왜 null로 나왔는지는 모르겠네....흠...