Spring Framework

나만의셀렉샵) 관심 상품 조회하기

na_o 2021. 7. 26. 17:56
728x90
/*Timestamped.java*/

package com.sparta.week04.models;

...

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

    @LastModifiedDate // 마지막 변경 시점
    private LocalDateTime modifiedAt;
}
/*Week04Application.java*/

package com.sparta.week04;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@EnableJpaAuditing //시간 자동 변경 가능하도록 함
@SpringBootApplication //스프링 부트임을 선언
public class Week04Application {

    public static void main(String[] args) {
        SpringApplication.run(Week04Application.class, args);
    }

}
/*Product.java*/

package com.sparta.week04.models;

...

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

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

    // 반드시 값을 가지도록 합니다.
    @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; //내가 원하는 최저가
}
/*ProductRepository.java*/

package com.sparta.week04.models;

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {

}
package com.sparta.week04.controller;

...

import java.util.List;


@RequiredArgsConstructor //final로 선언된 멤버 변수를 자동 생성
@RestController //JSON으로 데이터를 주고받음을 선언
public class ProductRestController {

    private final ProductRepository productRepository;

	//등록된 전체 상품 목록 조회
    @GetMapping("/api/products")
    public List<Product> readProducts() {
        return productRepository.findAll();
    }

}