diff --git a/data.mv.db b/data.mv.db index cb1368a..1d03883 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index cfdbe10..6ef2691 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -67,9 +67,9 @@ public class DemoApplication implements CommandLineRunner { games.add(game2); var user1 = userService.create(new UserEntity( "login1", "email@mail.com", "qwerty123")); - // var user2 = userService.create(new UserEntity( "login2", "email@gmail.com", "qwerty1234")); + var user2 = userService.create(new UserEntity( "login2", "email@gmail.com", "qwerty1234")); orderService.create(7, new OrderEntity(user1,games)); - // orderService.create(1, new OrderEntity(user1,games)); + orderService.create(8, new OrderEntity(user2,games)); } } diff --git a/src/main/java/com/example/demo/orders/model/OrderEntity.java b/src/main/java/com/example/demo/orders/model/OrderEntity.java index 4612ee8..732317a 100644 --- a/src/main/java/com/example/demo/orders/model/OrderEntity.java +++ b/src/main/java/com/example/demo/orders/model/OrderEntity.java @@ -11,10 +11,9 @@ import com.example.demo.games.model.GameEntity; import com.example.demo.users.model.UserEntity; import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToMany; import jakarta.persistence.ManyToOne; -import jakarta.persistence.OneToMany; import jakarta.persistence.Table; @Entity @@ -25,7 +24,7 @@ public class OrderEntity extends BaseEntity{ @ManyToOne @JoinColumn(name = "userId", nullable = false) private UserEntity user; - @OneToMany(fetch=FetchType.EAGER) //cделать запрос jpa + @ManyToMany() //cделать запрос jpa private Set games = new HashSet<>(); public OrderEntity(){ diff --git a/src/main/java/com/example/demo/orders/repository/OrderRepository.java b/src/main/java/com/example/demo/orders/repository/OrderRepository.java index 14049fd..5fa9925 100644 --- a/src/main/java/com/example/demo/orders/repository/OrderRepository.java +++ b/src/main/java/com/example/demo/orders/repository/OrderRepository.java @@ -5,7 +5,7 @@ import java.util.Optional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; - +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; @@ -16,6 +16,7 @@ public interface OrderRepository extends CrudRepository, Pagi List findByUserId(long userId); + @Query("select o from OrderEntity o join fetch o.games where o.user.id = ?1") Page findByUserId(long userId, Pageable pageable); //Можно сделать запрос на сумму JPQL diff --git a/src/main/java/com/example/demo/orders/service/OrderService.java b/src/main/java/com/example/demo/orders/service/OrderService.java index 8fd2ed9..0ef6826 100644 --- a/src/main/java/com/example/demo/orders/service/OrderService.java +++ b/src/main/java/com/example/demo/orders/service/OrderService.java @@ -6,8 +6,6 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - import com.example.demo.core.error.NotFoundException; import com.example.demo.orders.model.OrderEntity; import com.example.demo.orders.repository.OrderRepository; @@ -24,11 +22,6 @@ public class OrderService { this.userService = userService; } - @Transactional(readOnly = true) - public List getAll(long userId){ - userService.get(userId); - return repository.findByUserId(userId); - } @Transactional(readOnly = true) public Page getAll(long userId, int page, int size){