Spring
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;
}
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;
}
package com.kyhslam.catalogservice.jpa;
import org.springframework.data.repository.CrudRepository;
public interface CatalogRepository extends CrudRepository<CatalogEntity, Long> {
CatalogEntity findByProductId(String productId);
}
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;
}
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)
;