diff --git a/backend/src/main/java/com/example/todoapp/config/InitTables.java b/backend/src/main/java/com/example/todoapp/config/InitTables.java index 12eb13b..e55565e 100644 --- a/backend/src/main/java/com/example/todoapp/config/InitTables.java +++ b/backend/src/main/java/com/example/todoapp/config/InitTables.java @@ -50,83 +50,86 @@ public class InitTables { stuffsRepository.deleteAll(); //データを残す場合はコメントアウト if (stuffsRepository.count() > 0) { - return; // すでにデータが存在する場合は何もしない + // すでにデータが存在する場合は何もしない } else { - setNewStuff(1L, "牛乳", null, "乳製品"); - setNewStuff(2L, "ヨーグルト", null, "乳製品"); - setNewStuff(3L, "チーズ", null, "乳製品"); - setNewStuff(4L, "バター", null, "乳製品"); - setNewStuff(5L, "生クリーム", null, "乳製品"); - - setNewStuff(6L, "鮭", null, "魚・肉"); - setNewStuff(7L, "鶏むね肉", null, "魚・肉"); - setNewStuff(8L, "豚バラ肉", null, "魚・肉"); - setNewStuff(9L, "牛ひき肉", null, "魚・肉"); - setNewStuff(10L, "まぐろ", null, "魚・肉"); - - setNewStuff(11L, "にんじん", null, "野菜"); - setNewStuff(12L, "キャベツ", null, "野菜"); - setNewStuff(13L, "ほうれん草", null, "野菜"); - setNewStuff(14L, "玉ねぎ", null, "野菜"); - setNewStuff(15L, "ピーマン", null, "野菜"); - setNewStuff(16L, "じゃがいも", null, "野菜"); + setNewStuff("牛乳", null, "乳製品"); + setNewStuff("ヨーグルト", null, "乳製品"); + setNewStuff("チーズ", null, "乳製品"); + setNewStuff("バター", null, "乳製品"); + setNewStuff("生クリーム", null, "乳製品"); + + setNewStuff("鮭", null, "魚・肉"); + setNewStuff("鶏むね肉", null, "魚・肉"); + setNewStuff("豚バラ肉", null, "魚・肉"); + setNewStuff("牛ひき肉", null, "魚・肉"); + setNewStuff("まぐろ", null, "魚・肉"); + + setNewStuff("にんじん", null, "野菜"); + setNewStuff("キャベツ", null, "野菜"); + setNewStuff("ほうれん草", null, "野菜"); + setNewStuff("玉ねぎ", null, "野菜"); + setNewStuff("ピーマン", null, "野菜"); + setNewStuff("じゃがいも", null, "野菜"); - setNewStuff(17L, "醤油", null, "調味料"); - setNewStuff(18L, "味噌", null, "調味料"); - setNewStuff(19L, "塩", null, "調味料"); - setNewStuff(20L, "砂糖", null, "調味料"); - setNewStuff(21L, "酢", null, "調味料"); - - setNewStuff(22L, "米", null, "その他"); - setNewStuff(23L, "パスタ", null, "その他"); - setNewStuff(24L, "小麦粉", null, "その他"); - setNewStuff(25L, "卵", null, "その他"); - setNewStuff(26L, "豆腐", null, "その他"); + setNewStuff("醤油", null, "調味料"); + setNewStuff("味噌", null, "調味料"); + setNewStuff("塩", null, "調味料"); + setNewStuff("砂糖", null, "調味料"); + setNewStuff("酢", null, "調味料"); + + setNewStuff("米", null, "その他"); + setNewStuff("パスタ", null, "その他"); + setNewStuff("小麦粉", null, "その他"); + setNewStuff("卵", null, "その他"); + setNewStuff("豆腐", null, "その他"); } - if (stuffsRepository.count() > 0) { - return; // すでにデータが存在する場合は何もしない + if (recipeStuffsRepository.count() > 0) { + // すでにデータが存在する場合は何もしない } else { - setNewRecipe(1L, "鮭のムニエル", "鮭を小麦粉で焼いた料理"); - setNewRecipe(2L, "カレー", "野菜と肉を煮込んだカレー"); - } - - if (recipesRepository.count() > 0) { - return; // すでにデータが存在する場合は何もしない - } else { - setNewRecipeStuffs(1L, recipesRepository.findById(1L).orElse(null), 6L, 1); // 鮭 - setNewRecipeStuffs(3L, recipesRepository.findById(1L).orElse(null), 17L, 10); // 醤油 - setNewRecipeStuffs(2L, recipesRepository.findById(1L).orElse(null), 24L, 50); // 小麦粉 - setNewRecipeStuffs(4L, recipesRepository.findById(2L).orElse(null), 11L, 1); // にんじん - setNewRecipeStuffs(5L, recipesRepository.findById(2L).orElse(null), 16L, 1); // じゃがいも - setNewRecipeStuffs(6L, recipesRepository.findById(2L).orElse(null), 9L, 100); // 牛ひき肉 + Recipes recipe1 = new Recipes(); + // recipe1.setRecipeId(1L); + recipe1.setRecipeName("鮭のムニエル"); + recipe1.setSummary("鮭を小麦粉で焼いた料理"); + recipesRepository.save(recipe1); + + Recipes recipe2 = new Recipes(); + recipe2.setRecipeName("カレー"); + recipe2.setSummary("野菜と肉を煮込んだカレー"); + recipesRepository.save(recipe2); + + setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("鮭").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 鮭")), 1); // 鮭 + setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("小麦粉").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 小麦粉")), 50); // 小麦粉 + setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("バター").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: バター")), 10); // バター + setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("にんじん").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: にんじん")), 1); // にんじん + setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("じゃがいも").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: じゃがいも")), 1); // じゃがいも + setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("牛ひき肉").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 牛ひき肉")), 100); // 牛ひき肉 } } - private void setNewStuff(Long stuffId, String stuffName, String summary, String category) { + private void setNewStuff(String stuffName, String summary, String category) { Stuffs stuff = new Stuffs(); - stuff.setStuffId(stuffId); stuff.setStuffName(stuffName); stuff.setSummary(summary); stuff.setCategory(category); stuffsRepository.save(stuff); } - private void setNewRecipe(Long recipeId, String recipeName, String summary) { - Recipes recipe = new Recipes(); - recipe.setRecipeId(recipeId); - recipe.setRecipeName(recipeName); - recipe.setSummary(summary); - } + // private void setNewRecipe(Long recipeId, String recipeName, String summary) { + // Recipes recipe = new Recipes(); + // recipe.setRecipeId(recipeId); + // recipe.setRecipeName(recipeName); + // recipe.setSummary(summary); + // recipesRepository.save(recipe); + // } - private void setNewRecipeStuffs(Long recipeStuffsId, Recipes recipe, Long stuffId, int amount) { + private void setNewRecipeStuffs(Recipes recipe, Stuffs stuff, int amount) { RecipeStuffs recipeStuff = new RecipeStuffs(); - recipeStuff.setRecipeStuffsId(recipeStuffsId); recipeStuff.setRecipes(recipe); - recipeStuff.setRecipeStuffsId(stuffId); + recipeStuff.setStuff(stuff); recipeStuff.setAmount(amount); recipeStuffsRepository.save(recipeStuff); } diff --git a/backend/src/main/java/com/example/todoapp/model/Recipes.java b/backend/src/main/java/com/example/todoapp/model/Recipes.java index 35a9b36..ebe5f7e 100644 --- a/backend/src/main/java/com/example/todoapp/model/Recipes.java +++ b/backend/src/main/java/com/example/todoapp/model/Recipes.java @@ -36,7 +36,7 @@ public class Recipes { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="recipeId") - private Long recipeId ; + private Long recipeId; /** * カテゴリ名 @@ -51,4 +51,5 @@ public class Recipes { @Column (columnDefinition = "TEXT") private String summary; + } \ No newline at end of file diff --git a/backend/src/main/java/com/example/todoapp/repository/RecipeStuffsRepository.java b/backend/src/main/java/com/example/todoapp/repository/RecipeStuffsRepository.java index a660f21..34e192e 100644 --- a/backend/src/main/java/com/example/todoapp/repository/RecipeStuffsRepository.java +++ b/backend/src/main/java/com/example/todoapp/repository/RecipeStuffsRepository.java @@ -18,6 +18,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Optional; /** * 料理-材料エンティティのリポジトリインターフェース @@ -29,5 +30,21 @@ import java.util.List; @Repository public interface RecipeStuffsRepository extends JpaRepository { - + /** + * レシピIDで食材情報を検索する + * + * @param recipeId 検索するレシピID + * @return 関連する食材情報リスト + */ + List findByRecipesRecipeId(Long recipeId); + + /** + * レシピIDと食材IDで関連情報を検索する + * + * @param recipeId 検索するレシピID + * @param stuffId 検索する食材ID + * @return 関連情報(存在する場合) + */ + Optional findByRecipesRecipeIdAndStuffStuffId(Long recipeId, Long stuffId); + } \ No newline at end of file diff --git a/backend/src/main/java/com/example/todoapp/repository/RecipesRepository.java b/backend/src/main/java/com/example/todoapp/repository/RecipesRepository.java index f1a039c..565ac21 100644 --- a/backend/src/main/java/com/example/todoapp/repository/RecipesRepository.java +++ b/backend/src/main/java/com/example/todoapp/repository/RecipesRepository.java @@ -3,6 +3,7 @@ package com.example.todoapp.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.example.todoapp.model.Recipes; +import java.util.Optional; /** * レシピエンティティのリポジトリインターフェース @@ -11,4 +12,11 @@ import com.example.todoapp.model.Recipes; * Spring Data JPAによって自動的に実装されます。 *

*/ -public interface RecipesRepository extends JpaRepository {} +public interface RecipesRepository extends JpaRepository { + /** + * レシピIDでレシピを検索する + * @param recipeId + * @return Recipes オブジェクトのOptional + */ + Optional findByRecipeId(Long recipeId); +} diff --git a/backend/src/main/java/com/example/todoapp/repository/RecipesStuffsRepository.java b/backend/src/main/java/com/example/todoapp/repository/RecipesStuffsRepository.java deleted file mode 100644 index 729b825..0000000 --- a/backend/src/main/java/com/example/todoapp/repository/RecipesStuffsRepository.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.example.todoapp.repository; - -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.example.todoapp.model.RecipeStuffs; - -/** - * レシピ食材関連データのリポジトリインターフェース - *

- * このインターフェースはレシピと食材の関連データへのアクセスを提供します。 - * Spring Data JPAによって自動的に実装されます。 - *

- */ -public interface RecipesStuffsRepository extends JpaRepository { - /** - * レシピIDで食材情報を検索する - * - * @param recipeId 検索するレシピID - * @return 関連する食材情報リスト - */ - List findByRecipesRecipeId(Long recipeId); - - /** - * レシピIDと食材IDで関連情報を検索する - * - * @param recipeId 検索するレシピID - * @param stuffId 検索する食材ID - * @return 関連情報(存在する場合) - */ - Optional findByRecipesRecipeIdAndStuffStuffId(Long recipeId, Long stuffId); -} - - - diff --git a/backend/src/main/java/com/example/todoapp/service/RecipeService.java b/backend/src/main/java/com/example/todoapp/service/RecipeService.java index 2eab2b8..65a3673 100644 --- a/backend/src/main/java/com/example/todoapp/service/RecipeService.java +++ b/backend/src/main/java/com/example/todoapp/service/RecipeService.java @@ -24,7 +24,7 @@ import com.example.todoapp.dto.StuffRequestDTO; import com.example.todoapp.model.RecipeStuffs; import com.example.todoapp.model.Recipes; import com.example.todoapp.model.Stuffs; -import com.example.todoapp.repository.RecipesStuffsRepository; +import com.example.todoapp.repository.RecipeStuffsRepository; import com.example.todoapp.repository.RecipesRepository; import com.example.todoapp.repository.StuffsRepository; @@ -47,7 +47,7 @@ public class RecipeService { private StuffsRepository stuffsRepository; @Autowired - private RecipesStuffsRepository recipeStuffsRepository; + private RecipeStuffsRepository recipeStuffsRepository; /** * レシピを新規登録する