package com.mousetech.gourmetj.persistence.service; import java.io.Serializable; import java.util.List; import java.util.Optional; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.inject.Named; import javax.persistence.NamedEntityGraph; import javax.persistence.NamedNativeQuery; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.transaction.annotation.Transactional; import com.mousetech.gourmetj.RecipeDetailBean; import com.mousetech.gourmetj.persistence.dao.CategoryRepository; import com.mousetech.gourmetj.persistence.dao.RecipeRepository; import com.mousetech.gourmetj.persistence.dao.ShopcatRepository; import com.mousetech.gourmetj.persistence.model.Category; import com.mousetech.gourmetj.persistence.model.Ingredient; import com.mousetech.gourmetj.persistence.model.Recipe; import com.mousetech.gourmetj.persistence.model.Shopcat; @Named @ApplicationScoped @Transactional public class RecipeService implements Serializable { private static final long serialVersionUID = 1L; private static final Logger log = LoggerFactory.getLogger(RecipeService.class); @Inject private RecipeRepository recipeRepository; public List findAll() { return recipeRepository.findAll(); } public List findByTitle(String searchText) { return recipeRepository .findByTitleContaining(searchText); } public Recipe findByPrimaryKey(Long recipeId) { return recipeRepository.findById(recipeId).orElse(null); } public Recipe findDetails(Long recipeId) { return recipeRepository.findDetailsById(recipeId); } /** * final String sql = "SELECT DISTINCT cuisine from recipe" + * " where cuisine is not null and cuisine <> ''" + " ORDER * BY cuisine ASC"; * * @return */ public List findCuisines() { return recipeRepository.FindCuisinesNative(); } public void save(Recipe recipe) { // TODO Auto-generated method stub } public void delete(Recipe recipe) { // TODO Auto-generated method stub } @Inject ShopcatRepository shopcatRepository; public List findShoppingCategories() { return shopcatRepository.findDistinctCategoryNative(); } @Inject CategoryRepository categoryRepository; /** * * @return All Category names that are not null/blank, * sorted. */ public List findCategories() { return categoryRepository.findDistinctCategoryNative(); } }