From c6914cf4e77fbd5330191cacee2ca549f2526ba8 Mon Sep 17 00:00:00 2001 From: lionarius Date: Mon, 28 Oct 2024 18:30:24 +0300 Subject: [PATCH] lab4 --- build.gradle | 6 +----- .../isdojplab/controller/HomeController.java | 9 ++++++--- .../isdojplab/controller/RegisterFormController.java | 7 +++++-- src/main/java/ru/lionarius/isdojplab/model/Cart.java | 9 ++++----- .../java/ru/lionarius/isdojplab/model/CartItem.java | 9 ++++----- .../java/ru/lionarius/isdojplab/model/CartOrder.java | 7 +++---- .../java/ru/lionarius/isdojplab/model/Product.java | 8 ++++---- src/main/java/ru/lionarius/isdojplab/model/User.java | 11 ++++------- .../isdojplab/repository/ProductRepository.java | 4 ++-- .../isdojplab/repository/UserRepository.java | 4 ++-- src/main/resources/application.properties | 10 ++++------ 11 files changed, 39 insertions(+), 45 deletions(-) diff --git a/build.gradle b/build.gradle index bb83a2e..3770c97 100644 --- a/build.gradle +++ b/build.gradle @@ -27,13 +27,9 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.springframework.boot:spring-boot-starter-jdbc' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' developmentOnly 'org.springframework.boot:spring-boot-devtools' - - implementation 'org.hibernate.orm:hibernate-community-dialects' - implementation 'org.xerial:sqlite-jdbc:3.46.1.3' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/ru/lionarius/isdojplab/controller/HomeController.java b/src/main/java/ru/lionarius/isdojplab/controller/HomeController.java index e6860d7..1f34275 100644 --- a/src/main/java/ru/lionarius/isdojplab/controller/HomeController.java +++ b/src/main/java/ru/lionarius/isdojplab/controller/HomeController.java @@ -12,14 +12,17 @@ import java.util.List; @Controller public class HomeController { - @Autowired - private ProductRepository productRepository; + private final ProductRepository productRepository; + + public HomeController(ProductRepository productRepository) { + this.productRepository = productRepository; + } @GetMapping("/") public String home(Model model) { model.addAttribute("message", "Добро пожаловать в магазин электротоваров!"); - List products = productRepository.findAll(); + Iterable products = productRepository.findAll(); model.addAttribute("products", products); diff --git a/src/main/java/ru/lionarius/isdojplab/controller/RegisterFormController.java b/src/main/java/ru/lionarius/isdojplab/controller/RegisterFormController.java index 7f55c5f..264dd79 100644 --- a/src/main/java/ru/lionarius/isdojplab/controller/RegisterFormController.java +++ b/src/main/java/ru/lionarius/isdojplab/controller/RegisterFormController.java @@ -14,8 +14,11 @@ import ru.lionarius.isdojplab.repository.UserRepository; @Controller public class RegisterFormController { - @Autowired - private UserRepository userRepository; + private final UserRepository userRepository; + + public RegisterFormController(UserRepository userRepository) { + this.userRepository = userRepository; + } @GetMapping("/register") public String showForm(Model model) { diff --git a/src/main/java/ru/lionarius/isdojplab/model/Cart.java b/src/main/java/ru/lionarius/isdojplab/model/Cart.java index 95f1193..3166774 100644 --- a/src/main/java/ru/lionarius/isdojplab/model/Cart.java +++ b/src/main/java/ru/lionarius/isdojplab/model/Cart.java @@ -1,23 +1,22 @@ package ru.lionarius.isdojplab.model; -import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -@Entity +@Document public class Cart { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private String id; - @OneToMany(cascade = CascadeType.ALL) private List items; private Double totalPrice; diff --git a/src/main/java/ru/lionarius/isdojplab/model/CartItem.java b/src/main/java/ru/lionarius/isdojplab/model/CartItem.java index 4b3c8cb..c7ae35b 100644 --- a/src/main/java/ru/lionarius/isdojplab/model/CartItem.java +++ b/src/main/java/ru/lionarius/isdojplab/model/CartItem.java @@ -1,20 +1,19 @@ package ru.lionarius.isdojplab.model; -import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; @Data @AllArgsConstructor @NoArgsConstructor -@Entity +@Document public class CartItem { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private String id; - @ManyToOne private Product product; private int quantity; diff --git a/src/main/java/ru/lionarius/isdojplab/model/CartOrder.java b/src/main/java/ru/lionarius/isdojplab/model/CartOrder.java index 192824d..b6205e0 100644 --- a/src/main/java/ru/lionarius/isdojplab/model/CartOrder.java +++ b/src/main/java/ru/lionarius/isdojplab/model/CartOrder.java @@ -1,9 +1,10 @@ package ru.lionarius.isdojplab.model; -import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; import java.math.BigDecimal; import java.util.List; @@ -11,11 +12,10 @@ import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor -@Entity +@Document public class CartOrder { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String customerName; @@ -23,7 +23,6 @@ public class CartOrder { private String address; private String email; - @OneToMany(cascade = CascadeType.ALL) private List items; private BigDecimal totalPrice; diff --git a/src/main/java/ru/lionarius/isdojplab/model/Product.java b/src/main/java/ru/lionarius/isdojplab/model/Product.java index 9493666..77e9eaa 100644 --- a/src/main/java/ru/lionarius/isdojplab/model/Product.java +++ b/src/main/java/ru/lionarius/isdojplab/model/Product.java @@ -1,18 +1,18 @@ package ru.lionarius.isdojplab.model; -import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; @Data @AllArgsConstructor @NoArgsConstructor -@Entity +@Document public class Product { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private String id; private String name; private Double price; diff --git a/src/main/java/ru/lionarius/isdojplab/model/User.java b/src/main/java/ru/lionarius/isdojplab/model/User.java index 83d72c6..ee92764 100644 --- a/src/main/java/ru/lionarius/isdojplab/model/User.java +++ b/src/main/java/ru/lionarius/isdojplab/model/User.java @@ -1,20 +1,17 @@ package ru.lionarius.isdojplab.model; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; @Data -@Entity +@Document public class User { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private String id; @NotBlank(message = "Поле не может быть пустым") private String name; diff --git a/src/main/java/ru/lionarius/isdojplab/repository/ProductRepository.java b/src/main/java/ru/lionarius/isdojplab/repository/ProductRepository.java index 941aff5..4c3f17d 100644 --- a/src/main/java/ru/lionarius/isdojplab/repository/ProductRepository.java +++ b/src/main/java/ru/lionarius/isdojplab/repository/ProductRepository.java @@ -1,9 +1,9 @@ package ru.lionarius.isdojplab.repository; -import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import ru.lionarius.isdojplab.model.Product; @Repository -public interface ProductRepository extends JpaRepository { +public interface ProductRepository extends CrudRepository { } diff --git a/src/main/java/ru/lionarius/isdojplab/repository/UserRepository.java b/src/main/java/ru/lionarius/isdojplab/repository/UserRepository.java index cbdae08..eca04aa 100644 --- a/src/main/java/ru/lionarius/isdojplab/repository/UserRepository.java +++ b/src/main/java/ru/lionarius/isdojplab/repository/UserRepository.java @@ -1,13 +1,13 @@ package ru.lionarius.isdojplab.repository; -import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import ru.lionarius.isdojplab.model.User; import java.util.Optional; @Repository -public interface UserRepository extends JpaRepository { +public interface UserRepository extends CrudRepository { Optional findByEmail(String email); Optional findByName(String name); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8edda93..7a50c5d 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,5 @@ spring.application.name=isdojp-lab -spring.datasource.driver-class-name=org.sqlite.JDBC -spring.datasource.url=jdbc:sqlite:./database/data.db -spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect -spring.jpa.generate-ddl=true -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true \ No newline at end of file +spring.data.mongodb.host=localhost +spring.data.mongodb.port=27017 +spring.data.mongodb.database=isdojp +spring.data.mongodb.auto-index-creation=true