ProductImage 엔티티
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString(exclude = "product")
@Builder
@Entity
@Table(name = "ProductImage")
public class ProductImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int ino; // 고유 이미지 ID (PK)
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "prodNo", nullable = false) // Product의 prodNo를 FK로 참조
private Product product; // 1:1 매핑된 상품
// 목록용 이미지
private String oNameList; // 원본 파일명 (List view)
private String sNameList; // 썸네일 파일명 (List view)
// 메인 이미지
private String oNameMain; // 원본 파일명 (Main view)
private String sNameMain; // 썸네일 파일명 (Main view)
// 상세 이미지
private String oNameDetail; // 원본 파일명 (Detail view)
private String sNameDetail; // 썸네일 파일명 (Detail view)
// 추가 썸네일(예: 3단계 축소)
private String oNameThumb3; // 원본 파일명 (Thumbnail 단계 3)
private String sNameThumb3; // 썸네일 파일명 (Thumbnail 단계 3)
@CreationTimestamp
private LocalDateTime rdate; // 이미지 등록일시
}
설명
ino
product (@OneToOne)
Product 엔티티와 1:1로 연결.
prodNo를 외래키로 참조하여, 각 상품마다 하나의 이미지 집합이 존재.
- 이미지 파일명 필드
- 목록용 (List view)
oNameList: 원본 파일명
sNameList: 썸네일 파일명
- 메인 이미지 (Main view)
- 상세 이미지 (Detail view)
- 추가 썸네일 (예: 작은 썸네일, 단계 3)
rdate
- 생성 시 자동으로 설정되는 등록일시 (
@CreationTimestamp)