api animal
This commit is contained in:
@@ -2,7 +2,9 @@ package com.kamco.cd.kamcoback.postgres.core;
|
|||||||
|
|
||||||
import com.kamco.cd.kamcoback.common.service.BaseCoreService;
|
import com.kamco.cd.kamcoback.common.service.BaseCoreService;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.AnimalEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.AnimalEntity;
|
||||||
|
import com.kamco.cd.kamcoback.postgres.entity.ZooEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.repository.AnimalRepository;
|
import com.kamco.cd.kamcoback.postgres.repository.AnimalRepository;
|
||||||
|
import com.kamco.cd.kamcoback.postgres.repository.ZooRepository;
|
||||||
import com.kamco.cd.kamcoback.zoo.dto.AnimalDto;
|
import com.kamco.cd.kamcoback.zoo.dto.AnimalDto;
|
||||||
import jakarta.persistence.EntityNotFoundException;
|
import jakarta.persistence.EntityNotFoundException;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -17,6 +19,7 @@ public class AnimalCoreService
|
|||||||
implements BaseCoreService<AnimalDto.Basic, Long, AnimalDto.SearchReq> {
|
implements BaseCoreService<AnimalDto.Basic, Long, AnimalDto.SearchReq> {
|
||||||
|
|
||||||
private final AnimalRepository animalRepository;
|
private final AnimalRepository animalRepository;
|
||||||
|
private final ZooRepository zooRepository;
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public AnimalDto.Basic getDataByUuid(String uuid) {
|
public AnimalDto.Basic getDataByUuid(String uuid) {
|
||||||
@@ -33,7 +36,18 @@ public class AnimalCoreService
|
|||||||
// AddReq를 받는 추가 메서드
|
// AddReq를 받는 추가 메서드
|
||||||
@Transactional
|
@Transactional
|
||||||
public AnimalDto.Basic create(AnimalDto.AddReq req) {
|
public AnimalDto.Basic create(AnimalDto.AddReq req) {
|
||||||
AnimalEntity entity = new AnimalEntity(req.getCategory(), req.getSpecies(), req.getName());
|
ZooEntity zoo = null;
|
||||||
|
if (req.getZooId() != null) {
|
||||||
|
zoo =
|
||||||
|
zooRepository
|
||||||
|
.getZooByUid(req.getZooId())
|
||||||
|
.orElseThrow(
|
||||||
|
() ->
|
||||||
|
new EntityNotFoundException(
|
||||||
|
"Zoo not found with id: " + req.getZooId()));
|
||||||
|
}
|
||||||
|
AnimalEntity entity =
|
||||||
|
new AnimalEntity(req.getCategory(), req.getSpecies(), req.getName(), zoo);
|
||||||
AnimalEntity saved = animalRepository.save(entity);
|
AnimalEntity saved = animalRepository.save(entity);
|
||||||
return saved.toDto();
|
return saved.toDto();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,9 +8,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import jakarta.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@@ -41,13 +44,18 @@ public class AnimalEntity extends CommonDateEntity {
|
|||||||
private String name;
|
private String name;
|
||||||
private Boolean isDeleted;
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "zoo_id")
|
||||||
|
private ZooEntity zoo;
|
||||||
|
|
||||||
// Construct
|
// Construct
|
||||||
public AnimalEntity(Category category, Species species, String name) {
|
public AnimalEntity(Category category, Species species, String name, ZooEntity zoo) {
|
||||||
this.uuid = UUID.randomUUID();
|
this.uuid = UUID.randomUUID();
|
||||||
this.category = category;
|
this.category = category;
|
||||||
this.species = species;
|
this.species = species;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.isDeleted = false;
|
this.isDeleted = false;
|
||||||
|
this.zoo = zoo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AnimalDto.Basic toDto() {
|
public AnimalDto.Basic toDto() {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public class AnimalDto {
|
|||||||
private Category category;
|
private Category category;
|
||||||
private Species species;
|
private Species species;
|
||||||
private String name;
|
private String name;
|
||||||
|
private Long zooId; // 동물원 ID (선택)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
Reference in New Issue
Block a user