일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CS
- Spring
- c
- 자바
- Spotify Api
- MYSQL
- spotify
- Gem
- 비트겟
- 백준
- SECS-II
- Spring JPA
- C++
- Computer Science
- SWEA
- java
- programmers
- python
- 파이썬
- 회원가입
- SW Expert Academy
- 스포티파이
- SECS/GEM
- 프로그래머스
- SECS
- spring boot
- Baekjoon
- 회귀
- regression
- modern c++
Archives
- Today
- Total
비버놀로지
[Spring JPA] 1-2. 계정 도메인 본문
728x90
먼저 회원가입에 필요한 dto를 만들어 줍니다.
아래와 같이 id, email, nickname, password 등을 활용을 해서 계정에 대한 정보를 입력할 수 있게 dto를 구성합니다.
package com.studyolle.repository.dto;
import java.time.LocalDateTime;
import java.util.UUID;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Entity
@Getter @Setter @EqualsAndHashCode(of = "id")
@Builder @AllArgsConstructor @NoArgsConstructor
public class Account {
// 회원 정보
@Id @GeneratedValue
private Long id;
@Column(unique = true)
private String email;
@Column(unique = true)
private String nickname;
private String password;
private boolean emailVerified;
private String emailCheckToken;
private LocalDateTime emailCheckTokenGeneratedAt;
private LocalDateTime joinedAt;
private String bio;
private String url;
private String occupation;
private String location;
@Lob @Basic(fetch = FetchType.EAGER)
private String profileImage;
//알람 관련 정보
private boolean studyCreatedByEmail;
private boolean studyCreatedByWeb = true;
private boolean studyEnrollmentResultByEmail;
private boolean studyEnrollmentResultByWeb = true;
private boolean studyUpdatedByEmail;
private boolean studyUpdatedByWeb = true;
// @ManyToMany
// private Set<Tag> tags = new HashSet<>();
//
// @ManyToMany
// private Set<Zone> zones = new HashSet<>();
public void generateEmailCheckToken() {
this.emailCheckToken = UUID.randomUUID().toString();
this.emailCheckTokenGeneratedAt = LocalDateTime.now();
}
public void completeSignUp() {
this.emailVerified = true;
this.joinedAt = LocalDateTime.now();
}
public boolean isValidToken(String token) {
return this.emailCheckToken.equals(token);
}
public boolean canSendConfirmEmail() {
return this.emailCheckTokenGeneratedAt.isBefore(LocalDateTime.now().minusHours(1));
}
}
728x90
'LANGUAGE STUDY > Spring' 카테고리의 다른 글
[Spring JPA] 1-6. 회원 가입 폼 서브밋 처리 (0) | 2021.04.30 |
---|---|
[Spring JPA] 1-5. 회원 가입 폼 서브밋 검증 (0) | 2021.04.30 |
[Spring JPA] 1-4. 회원 가입 : 뷰 (0) | 2021.04.30 |
[Spring JPA] 1-3. 회원 가입 : 컨트롤러 (0) | 2021.04.27 |
[Spring JPA] 1-1. 프로젝트 생성 (0) | 2021.04.26 |
Comments