<추가한 카테고리 모델>
public class CategoryNameList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long largeCategory_id;
private String categoryName;
@Enumerated(EnumType.STRING)
private CategoryType categoryType;
}
public enum CategoryType {
LARGE, SMALL
}
<repository>
public interface CategoryNameRepository extends JpaRepository<CategoryNameList, Integer> {
}
<service>
@Transactional
public LargeCategory largeCategorySave (LargeCategory largeCategory) {
LargeCategory largeCategoryEntity= largeCategoryRepository.save(largeCategory);
CategoryNameList categoryNameList = CategoryNameList.builder() //largecategory를 저장하면서 categoryNameList에 값을 저장함
.largeCategory_id(largeCategoryEntity.getId())
.categoryName(largeCategoryEntity.getLargeCategoryName())
.categoryType(CategoryType.LARGE)
.build();
categoryNameRepository.save(categoryNameList);
return largeCategoryEntity;
}
@Transactional //subCategory 저장
public SubCategory subCategorySave (SubCategorySaveRequestDto subCategorySaveRequestDto) {
LargeCategory largeCategory = largeCategoryRepository.findById(subCategorySaveRequestDto.getLargeCategory_id())
.orElseThrow(()-> new IllegalArgumentException("없는 대분류 카테고리 입니다."));
CategoryNameList categoryNameList = CategoryNameList.builder() //subCategory를 저장하면서 categoryNameList에 값을 저장함
.largeCategory_id(largeCategory.getId()) //해당 largecategory_id가 들어가야함
.categoryName(subCategorySaveRequestDto.getSubCategoryName())
.categoryType(CategoryType.SMALL)
.build();
categoryNameRepository.save(categoryNameList);
SubCategory subCategory = SubCategory.builder()
.largeCategory(largeCategory)
.subCategoryName(subCategorySaveRequestDto.getSubCategoryName())
.build();
return subCategoryRepository.save(subCategory);
}
@Transactional //categoryNameList 가져오기
public List<CategoryNameList> categoryNameList() {
return categoryNameRepository.findAll();
}
<controller>
@GetMapping("/categoryNameList")
public ResponseDto<?> categoryNameList () {
return new ResponseDto<> (HttpStatus.OK.value(), categoryService.categoryNameList());
}
728x90
반응형
'개인 프로젝트 > 블로그' 카테고리의 다른 글
로그인 구현 생각 (0) | 2022.07.10 |
---|---|
카테고리 달기 (react) (1) | 2022.07.10 |
게시글 category 적용 고민 (0) | 2022.07.08 |
카타고리 달기 (front) (0) | 2022.07.08 |
블로그 카테고리 달기 (백엔드) (1) | 2022.07.04 |