일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 금융감독원 민원신청
- 금감원
- 코드스테이츠 합격
- 금융감독원
- 코드스테이츠 백엔드 교육과정
- 메서드
- codestates 국비지원 1기 합격 후기
- 금감원 백내장 민원
- 해시
- 백내장 다초점렌즈 삽입술
- 보험금 지급거절
- 백준 알고리즘
- 코드스테이츠 백엔드 후기
- Java
- Spring
- 겜스고
- HLB
- 백내장
- CodeState 후기
- 코드 스테이츠 백엔드 교육과정
- 코테 합격후기
- 코드스테이츠 합격 후기
- Code States 백엔드 합격 후기
- Gamsgo
- 코드스테이츠 백엔드 부트캠프 합격
- 코드스테이츠 부트캠프 합격 후기
- 자바
- 코드스테이츠 부트캠프
- 백내장 금감원
- 에이치엘비
Archives
- Today
- Total
개발하는 동그리
[Main Project] @Convert : booleanToString 본문
반응형
@Convert 는 boolean 타입의 true / false 에 따라 내가 원하는 String값 ( 성공 / 실패 ) 와 같이 DB에 저장할 수 있게 도와준다.
DogCard Entity Class
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.team012.server.utils.Converter.BooleanToDoneOrNotConvert;
import com.team012.server.utils.Converter.BooleanToGiveOrNotConvert;
import com.team012.server.utils.Converter.BooleanToHaveOrNotConvert;
import com.team012.server.utils.Converter.BooleanToInsideOrNotConvert;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
@Entity
@Getter
@Setter
@NoArgsConstructor
public class DogCard {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// @Lob
@Column(name = "photo_img_url")
private String photoImgUrl;
@Column(name = "dog_name")
private String dogName;
@Column(name = "type") // 강아지 종
private String type;
@Column(name = "gender")
private String gender;
@Column(name = "age")
private Integer age;
@Column(name = "weight")
private Double weight;
// 간식급여 여부
@Convert (converter = BooleanToGiveOrNotConvert.class)
@Column(name = "snack_method")
private boolean snackMethod;
// 입질, 짖음 여부
@Convert (converter = BooleanToHaveOrNotConvert.class)
@Column(name = "bark")
private boolean bark;
// 중성화 여부
@Convert (converter = BooleanToDoneOrNotConvert.class)
@Column(name = "surgery")
private boolean surgery;
// 실외 / 실내배변 여부
@Convert (converter = BooleanToInsideOrNotConvert.class)
@Column(name = "bowel_trained")
private boolean bowelTrained;
@Convert (converter = BooleanToHaveOrNotConvert.class)
@Column(name = "etc")
private boolean etc;
// 강아지 큐카드는 한명의 회원이 가질 수 있다.
@ManyToOne // 회원 삭제시 강아지 큐카드도 삭제
@JoinColumn(name = "users_id")
@JsonBackReference
private Users users;
}
AttributeConver Interface
public interface AttributeConvert <X,Y>{
public Y convertToDatabaseColumn (X attribute);
public X convertToEntityAttribute (Y dbData);
}
Convert Class ( true -> 급여 / false -> 미급여 )
@Converter
@Slf4j
public class BooleanToGiveOrNotConvert implements AttributeConverter<Boolean,String> {
@Override
public String convertToDatabaseColumn(Boolean attribute) {
log.info("{}" , attribute);
return (attribute) ? "급여" : "미급여";
}
@Override
public Boolean convertToEntityAttribute(String dbData) {
return "급여".equals(dbData);
}
}
Convert Class ( true -> 완료 / false -> 미완료 )
@Converter
@Slf4j
public class BooleanToDoneOrNotConvert implements AttributeConverter<Boolean,String> {
@Override
public String convertToDatabaseColumn(Boolean attribute) {
log.info("{}" , attribute);
return (attribute) ? "완료" : "미완료";
}
@Override
public Boolean convertToEntityAttribute(String dbData) {
return "완료".equals(dbData);
}
}
위와 같이 각 필드 변수에 @Convert를 추가해서 각각 다른 Convert를 생성해서 적용시킬 수 있고,
Domain Class 전체에 @Convert를 추가하면 Domain Class 내에 존재하는 모든 Boolean Type에도 적용시킬 수 있다.
반응형
'스테이츠 코드(백엔드) > Main Project' 카테고리의 다른 글
[Main Project] Spring Security + JWT 설정 (0) | 2022.09.29 |
---|---|
[Main Project] AWS S3 사진 업로드 설정 (2) | 2022.09.29 |
[Main Project] 서비스 실시간 update (3) | 2022.09.27 |
[Main Project] 코드 작동 오류 ( 해결 ~ ) (7) | 2022.09.22 |
[Main Project] 중요한 정보 (1) (4) | 2022.09.21 |