diff --git a/pom.xml b/pom.xml index 2df099c..34cc5f8 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,16 @@ org.springframework.boot spring-boot-starter-actuator + + org.springframework.boot + spring-boot-starter-data-jpa + + + com.mysql + mysql-connector-j + runtime + + diff --git a/src/main/java/dev/vidhya/productservice/models/BaseModel.java b/src/main/java/dev/vidhya/productservice/models/BaseModel.java index 2604cf3..a4859df 100644 --- a/src/main/java/dev/vidhya/productservice/models/BaseModel.java +++ b/src/main/java/dev/vidhya/productservice/models/BaseModel.java @@ -1,10 +1,22 @@ package dev.vidhya.productservice.models; +import jakarta.persistence.Column; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; import lombok.Getter; import lombok.Setter; +import org.hibernate.annotations.GenericGenerator; +import java.util.UUID; + +@MappedSuperclass @Getter @Setter public class BaseModel { - private Long id; + @Id + @GeneratedValue(generator = "uuidgenerator") + @GenericGenerator(name = "uuidgenerator", strategy = "uuid2") + @Column(name = "id", columnDefinition = "binary(16)", nullable = false, updatable = false) + private UUID uuid; } diff --git a/src/main/java/dev/vidhya/productservice/models/Category.java b/src/main/java/dev/vidhya/productservice/models/Category.java index fa14fa5..fe3b5ce 100644 --- a/src/main/java/dev/vidhya/productservice/models/Category.java +++ b/src/main/java/dev/vidhya/productservice/models/Category.java @@ -1,8 +1,9 @@ package dev.vidhya.productservice.models; +import jakarta.persistence.Entity; import lombok.Getter; import lombok.Setter; - +@Entity @Getter @Setter public class Category extends BaseModel { diff --git a/src/main/java/dev/vidhya/productservice/models/Product.java b/src/main/java/dev/vidhya/productservice/models/Product.java index ccf6c39..be07ef4 100644 --- a/src/main/java/dev/vidhya/productservice/models/Product.java +++ b/src/main/java/dev/vidhya/productservice/models/Product.java @@ -1,7 +1,10 @@ package dev.vidhya.productservice.models; +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToOne; import lombok.*; +@Entity @Getter @Setter /*@Data @@ -12,6 +15,7 @@ public class Product extends BaseModel{ private String title; private String description; private String image; + @ManyToOne private Category category; private double price; } diff --git a/src/main/java/dev/vidhya/productservice/services/FakeStoreProductService.java b/src/main/java/dev/vidhya/productservice/services/FakeStoreProductService.java index 85afc1c..cff0295 100644 --- a/src/main/java/dev/vidhya/productservice/services/FakeStoreProductService.java +++ b/src/main/java/dev/vidhya/productservice/services/FakeStoreProductService.java @@ -45,7 +45,7 @@ public GenericProductDto deleteProductById(Long id){ public GenericProductDto getGenericProductDto(FakeStoreProductDto fakeStoreProductDto){ GenericProductDto genericProductDto = new GenericProductDto(); - genericProductDto.setId(fakeStoreProductDto.getId()); + genericProductDto.setUuid(fakeStoreProductDto.getUuid()); genericProductDto.setTitle(fakeStoreProductDto.getTitle()); genericProductDto.setDescription(fakeStoreProductDto.getDescription()); genericProductDto.setImage(fakeStoreProductDto.getImage()); diff --git a/src/main/java/dev/vidhya/productservice/thirdpartyclients/productservice/fakestore/FakeStoreProductDto.java b/src/main/java/dev/vidhya/productservice/thirdpartyclients/productservice/fakestore/FakeStoreProductDto.java index 7147732..793dfad 100644 --- a/src/main/java/dev/vidhya/productservice/thirdpartyclients/productservice/fakestore/FakeStoreProductDto.java +++ b/src/main/java/dev/vidhya/productservice/thirdpartyclients/productservice/fakestore/FakeStoreProductDto.java @@ -3,10 +3,12 @@ import lombok.Getter; import lombok.Setter; +import java.util.UUID; + @Getter @Setter public class FakeStoreProductDto { - private Long id; + private UUID uuid; private String title; private String description; private String image; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5ec6fa1..f7ec68a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,11 @@ productService.type = FakeStoreProductService fakestore.api.url = https://fakestoreapi.com -fakestore.api.paths.product = /products \ No newline at end of file +fakestore.api.paths.product = /products + + +spring.jpa.hibernate.ddl-auto=update +spring.datasource.url=jdbc:mysql://localhost:3306/sep23productservice +spring.datasource.username=sep23productservice +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.jpa.show-sql: true \ No newline at end of file