## 6. Catalogs Microservice-設定01


Spring

設定


Dependencies



CatalogDto

package com.kyhslam.catalogservice.dto;
@Data
public class CatalogDto implements Serializable {
    private String productId;
    private Integer qty;
    private Integer unitPrice;
    private Integer totalPrice;

    private String orderId;
    private String userId;
}

CatalogEntity

package com.kyhslam.catalogservice.jpa;

import lombok.Data;
import org.hibernate.annotations.ColumnDefault;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

@Data
@Entity
@Table(name = "catalog")
public class CatalogEntity implements Serializable { //직렬화

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, length = 120, unique = true)
    private String productId;

    @Column(nullable = false)
    private String productName;
    @Column(nullable = false)
    private Integer stock;
    @Column(nullable = false)
    private Integer unitPrice;

    @Column(nullable = false, updatable = false, insertable = false)
    @ColumnDefault(value = "CURRENT_TIMESTAMP")
    private Date createdAt;
}

CatalogResponse.java

package com.kyhslam.catalogservice.jpa;

import org.springframework.data.repository.CrudRepository;

public interface CatalogRepository extends CrudRepository<CatalogEntity, Long> {
    CatalogEntity findByProductId(String productId);
}

ResponseCatalog.java

package com.kyhslam.catalogservice.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.util.Date;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResponseCatalog {
    private String productId;
    private String productName;

    private Integer unitPrice;
    private Integer stock;

    private Date createdAt;
}

data.sql

insert into catalog(product_id, product_name, stock, unit_price)
    value('CATALOG-001', 'Berlin', 100, 1500)
;

insert into catalog(product_id, product_name, stock, unit_price)
    value('CATALOG-002', 'Tokyo', 110, 1000)
;
insert into catalog(product_id, product_name, stock, unit_price)
    value('CATALOG-003', 'Stockholm', 120, 2000)
;