Issue: ⚙️ Implementar Serviço ProductService com Padrões de Design (Singleton/Factory) e JPA
Descrição:
Ajustar o serviço ProductService para usar JPA e um repositório real em vez de um armazenamento em memória. Continuamos utilizando o padrão Factory para criar objetos de Product. O serviço será responsável por operações de negócio envolvendo a entidade Product com persistência em banco de dados.
Tarefas:
[ ] 📦 Criar a interface ProductRepository estendendo JpaRepository
[ ] 🔄 Atualizar o ProductService para usar o ProductRepository para persistência
[ ] 🔨 Manter o padrão Factory para criação de objetos Product
package com.example.demo.service;
import com.example.demo.model.Product;
import com.example.demo.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
// Padrão Factory para criar produtos
public Product createProduct(String name, Double price) {
return new Product(null, name, price); // O ID será gerado pelo banco de dados
}
// Método para salvar um produto usando JPA
public Product save(Product product) {
return productRepository.save(product);
}
// Método para buscar produto por ID usando JPA
public Optional<Product> findById(Long id) {
return productRepository.findById(id);
}
}
Issue: ⚙️ Implementar Serviço
ProductService
com Padrões de Design (Singleton/Factory) e JPADescrição:
Ajustar o serviço
ProductService
para usar JPA e um repositório real em vez de um armazenamento em memória. Continuamos utilizando o padrão Factory para criar objetos deProduct
. O serviço será responsável por operações de negócio envolvendo a entidadeProduct
com persistência em banco de dados.Tarefas:
ProductRepository
estendendoJpaRepository
ProductService
para usar oProductRepository
para persistênciaProduct
Código de exemplo:
1.
ProductRepository
:2.
ProductService
: