@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String nickname; // 별명
@Column(nullable = false, unique = true)
private String username; // 사용자 이름 (username)
@Column
private String password; // 비밀번호 (password), 소셜 사용자의 경우 null일 수 있음
// @Column(nullable = false) 나중에 관리자 추가할거면 주석 해제
// @Enumerated(EnumType.STRING)
// private UserRoleEnum role; // 권한 (USER 또는 ADMIN)
@Column(nullable = false, updatable = false)
private LocalDateTime createdAt; // 생성일
@Column(unique = true) // 카카오 ID 추가, 이건 카카오 ID는 유일하다는거
private Long kakaoId; // 카카오 사용자 ID 즉, 소셜 사용자의 경우에만 사용
// 매개변수를 받는 생성자 추가
public User(String nickname, String username, String password, Long kakaoId) {
this.nickname = nickname;
this.username = username;
this.password = password;
this.kakaoId = kakaoId;
}
// 생성일 자동 설정을 위한 메서드
@PrePersist
protected void onCreate() {
this.createdAt = LocalDateTime.now();
}
public User kakaoIdUpdate(Long kakaoId) {
this.kakaoId = kakaoId;
return this;
}
}
이렇게 PrePersist 해서 만들때 자동으로 시간이 기록되게 하느냐
@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String nickname; // 별명
@Column(nullable = false, unique = true)
private String username; // 사용자 이름 (username)
@Column
private String password; // 비밀번호 (password), 소셜 사용자의 경우 null일 수 있음
// @Column(nullable = false) 나중에 관리자 추가할거면 주석 해제
// @Enumerated(EnumType.STRING)
// private UserRoleEnum role; // 권한 (USER 또는 ADMIN)
@Column(nullable = false, updatable = false)
private LocalDateTime createdAt; // 생성일
@Column(unique = true) // 카카오 ID 추가, 이건 카카오 ID는 유일하다는거
private Long kakaoId; // 카카오 사용자 ID 즉, 소셜 사용자의 경우에만 사용
// 매개변수를 받는 생성자 추가
public User(String nickname, String username, String password, LocalDateTime createdAt, Long kakaoId) {
this.nickname = nickname;
this.username = username;
this.password = password;
this.createdAt = createdAt;
this.kakaoId = kakaoId;
}
public User kakaoIdUpdate(Long kakaoId) {
this.kakaoId = kakaoId;
return this;
}
}
이렇게 LocalDateTime createdAt을 public user안, 즉 생성자에 넣어주면 생성시 시간이 자동기록 된다.