project.setStatus(ProjectStatus.INSPECTION);
이런식으로 enum을 저장해준 클래스를 호출하여 거기중 하나의 값을 가져와서 저장해준다!이 방법을 늦게 알게 되어 추가로 쓴다.
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder // 빌더 패턴
//ORM -> Java(다른언어) Object -> 테이블로 매핑해주는 기술
@Entity // User 클래스가 MySQL에 테이블이 생성이 된다. 이게 클레스에 가까이 있는 것이 좋다
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)// auto_increment
private int id;
@Column(nullable = false, length = 100)
private String title;
@Lob // 대용량 데이터
private String content; // 섬머노트 라이브러리 <html>태그가 섞여서 디자인이 됨.
@ColumnDefault("0")
private int count; // 조회수
@ManyToOne // Many = Board, User = One 한명의 유저는 여러개의 게시글을 쓸 수 있다.
@JoinColumn(name="userId") // foreign key (userId) references User (id)
private User user; // DB는 오브젝트를 저장할 수 없다. FK, 자바는 오브젝트를 저장할 수 있다. //참조 할 테이블
@CreationTimestamp //값이 입력될때 혹은 업데이트될때 자동으로 시간이 들어간다.
private Timestamp createDate;
}
이런식으로 @ColumnDefault(), @CreationTimestampe 등을 이용!
근데 Enum은 안먹어서 첫번째 방법으로 하였다..
@PostMapping("/projects")
public ResponseEntity register (@RequestBody ProjectCreateDTO model){
CustomResponseBody<ProjectCreateDTO> responseBody = new CustomResponseBody<>("프로젝트 등록 성공2");
try {
Long projectId = projectService.register(model.getProject());
projectSkillService.register(model.getProjectSkill(),projectId);
recruitInfoService.register(model.getRecruitInfo(),projectId);
}
//...생략
return ResponseEntity.ok().body(responseBody);
}
recruit_info 엔티티 저장할때 자동적으로 complet_count => 0으로 저장되게
-> 아무것도 안넣어주면 걍 자동으로 0으로 저장됨!
FK 값 가져오는 방법 고민