본문 바로가기

나만의 select shop 만들기

관심 상품 조회하기

관심상품은 등록을 한다 라는것은 DB에 저장한다는 뜻이고

어느 클래스가 관심상품을 대표한다고 할 때에 이 클래스는 하나의 테이블이 된다.

이 클래스를 Product라고 하고 기본적으로 Timestamped를 만들어 보자

 

models > Timestamped.java

@Getter // get 함수를 자동 생성합니다.
@MappedSuperclass // 멤버 변수가 컬럼이 되도록 합니다.
@EntityListeners(AuditingEntityListener.class) // 변경되었을 때 자동으로 기록합니다.
public abstract class Timestamped {
    @CreatedDate // 최초 생성 시점
    private LocalDateTime createdAt;

    @LastModifiedDate // 마지막 변경 시점
    private LocalDateTime modifiedAt;
}

 

이렇게 @EntityListeners(AuditingEntityListener.class)를 사용하려면

메인메서드에도 @EnableJpaAuditing 을 명시 해줘야 한다.

@EnableJpaAuditing // 시간 자동 변경이 가능하도록 합니다.
@SpringBootApplication // 스프링 부트임을 선언합니다.
public class Week04Application {
    public static void main(String[] args) {
        SpringApplication.run(Week04Application.class, args);
    }
}

Timestamped끝

 

이번엔 관심상품 목록 product를 만들어보자.

관심 상품의 정보가 이처럼 뜬다고 가정헀을 때 

• title, image, link, lprice, myprice 정보가 필요함을 알 수 있습니다. ( myprice는 별도로 입력할 내가 원하는 가격 )

 

models > Product.java

@Getter // get 함수를 일괄적으로 만들어줍니다.
@NoArgsConstructor // 기본 생성자를 만들어줍니다.
@Entity // DB 테이블 역할을 합니다.
public class Product extends Timestamped{

    @GeneratedValue(strategy = GenerationType.AUTO) 
    	// ID가 자동으로 생성 및 증가합니다.
    @Id
    private Long id;

		//(nullable = false) 반드시 값을 가지도록 합니다.
    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String image;

    @Column(nullable = false)
    private String link;

    @Column(nullable = false)
    private int lprice;

    @Column(nullable = false)
    private int myprice;
}

 

이번엔 컨트롤러를 생성해주자

 

controller > ProductRestController.java

@RequiredArgsConstructor // 반드시 필요한 변수 포함하는 생성자 자동생성
@RestController //json으로 응답하는 자동응답기~
public class ProductRestController {

    private  final ProductRepository productRepository; // 생성시 반드시 필요한 변수

    @GetMapping("/api/products")
    public List<Product> readProducts(){	// 상품 목록을 반환
        return productRepository.findAll();	// 찾는 기능은 repository에 의존
    }
}

 

readProducts 에서 반환해줘야 하는거고 찾는 기능은 repository에 의존하고 있다.

이제 다음르로 repository를 만들어주자

 

 

 

(ARC테스트 결과 조회기능은 정상작동됨~)

 

 

 

'나만의 select shop 만들기' 카테고리의 다른 글