Entity
Entity는 간단하게 DB의 테이블이라고 생각하면된다.
테이블과 1대1 대응이고, table의 칼럼을 필드로 가진다.
@Id를 통해 기본키를 설정할 수있고 @Column을 통해 이름을 설정할 수 있다.
@Entity
@Table(name = "place")
@Getter
@Setter
public class PlaceEntity {
@Id
private Long id;
private int type;
private String location;
private String name;
private String address;
@Column(name="road_address")
private String roadAddress;
private String phone;
private String url;
private double x;
private double y;
@Column(name="imgurl")
private String imgUrl;
}
DTO (Data Transefer Object)
계층간 데이터를 전달하기 위한 객체이다. 로직을 가지지 않는 순수한 데이터 객체이다.
고객에게 data를 받을때는 InputDto를 통해 data를 전달하고 받은 data를 통해서 선택된 장소들을 PlaceDto list를 반환한다.
public class InputDto {
private int type;
private double x;
private double y;
}
@Getter
public class PlaceDto {
private Long id;
private int type;
private String location;
private String name;
private String address;
private String roadAddress;
private String phone;
private String url;
private double x;
private double y;
private String imgUrl;
}
DAO (Data Access Object)
데이터에 접근하는 객체를 의미한다. PlaceServiceImpl에서 DAO를 이용해서 DB에 접근하여 정보를 가져온다.
이때 DAO는 Entity 형태로 데이터를 받아 service 로직에서 DTO로 변경하여 DTO 형태로 전달한다.
@Service
public class PlaceDaoImpl implements PlaceDao{
PlaceRepository placeRepository;
@Autowired
public PlaceDaoImpl(PlaceRepository placeRepository){
this.placeRepository = placeRepository;
}
@Override
public List<PlaceEntity> getPlacesByCoordinates(double minX, double maxX, double minY, double maxY, int type) {
if(type==0)
return placeRepository.getAllPlacesByXBetweenAndYBetween(minX, maxX, minY, maxY);
else
return placeRepository.getPlacesByXBetweenAndYBetweenAndType(minX, maxX, minY, maxY, type);
}
}
'Java , Spring > Jpa' 카테고리의 다른 글
[JPA] 상속관계 매핑 (1) | 2023.11.01 |
---|---|
[JPA] 연관관계 (0) | 2023.10.08 |
[JPA] 엔티티 매핑 (0) | 2023.10.06 |
[JPA] 영속성 관리 - 영속성 컨텍스트 (1) | 2023.10.03 |
[JPA] JPA 시작하기 (0) | 2023.10.03 |
댓글