0.properties 설정하기
우선 H2랑 JPA, Hibernate 를 사용하기 위해서 properties를 세팅해줍니다.
# 이름
spring.application.name=auction
# DATABASE
# H2 활성화
spring.h2.console.enabled=true
# 접근 경로
spring.h2.console.path=/h2-console
# 연결 URL
spring.datasource.url=jdbc:h2:~/local
# H2 드라이버 클래스 이름
spring.datasource.driverClassName=org.h2.Driver
# 사용자 이름
spring.datasource.username=sa
# 사용할 비밀번호
spring.datasource.password=
# JPA
# Hibernate가 사용할 데이터베이스 방언을 H2Dialect로 설정
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
# 애플리케이션 실행 시 데이터베이스 스키마 업데이트
spring.jpa.hibernate.ddl-auto=update
1.엔터티
이제 대략적인 엔터티들을 구상해볼겁니다. 구체적으로는 구상하지않았고 추가해야할 큰틀의 데이터 3개를 선정해서 미리 만들어두었습니다. 이후 필요에 의해 변경, 추가 될 예정입니다.
1-1.유저
해당 서비스를 이용하는 사용자입니다. 로그인을 하여 접속하고 돈을 가지고있습니다.
package com.example.model;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
public class AuctionUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique=true)
private String name;
private String password;
@Column(unique=true)
private String email;
private int money;
}
1-2.아이템
경매장에 올라가게될 아이템이다.
구상으로는 일단 아이템 그 자체에 대한 정보를담고있습니다.
package com.example.model;
import java.util.List;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@Column(length = 200)
private String Description;
@OneToMany(mappedBy = "item")
private List<Auction> auctions;
}
1-3. 경매장
실제 경마장에 올라와있는 매물들에 대한 데이터이다.
아이템과 가격,올린 날짜들이 담겨있습니다. 유저가 이것을 구입하게될것입니다.
package com.example.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
@Entity
public class Auction {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private LocalDateTime auctionDate;
private Integer auctionPrice;
@ManyToOne
@JoinColumn(name = "item_id")
private Item item;
}
2.레포지토리 생성
각 엔티티에 대한 레포지토리를 생성해줍니다.
package com.example.repository;
import com.example.model.Auction;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AuctionRepository extends JpaRepository<Auction, Long> {
}
package com.example.repository;
import com.example.model.AuctionUser;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AuctionUserRepository extends JpaRepository<AuctionUser, Long> {
}
package com.example.repository;
import com.example.model.Item;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ItemRepository extends JpaRepository<Item, Long> {
}
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] @Entity관련 어노테이션 (0) | 2024.10.05 |
---|---|
[SpringBoot] 경매장 프로젝트 구상#0 (2) | 2024.09.28 |
[Spring Boot] REST API 구현1 (0) | 2024.07.09 |