From 83a2718ca22d702001d433f04865b2a901cca138 Mon Sep 17 00:00:00 2001
From: Amagasu
Date: Thu, 12 Jun 2025 13:02:43 +0900
Subject: [PATCH] recipe initializable
---
.../example/todoapp/config/InitTables.java | 115 +++++++++---------
.../com/example/todoapp/model/Recipes.java | 3 +-
.../repository/RecipeStuffsRepository.java | 19 ++-
.../todoapp/repository/RecipesRepository.java | 10 +-
.../repository/RecipesStuffsRepository.java | 37 ------
.../todoapp/service/RecipeService.java | 4 +-
6 files changed, 90 insertions(+), 98 deletions(-)
delete mode 100644 backend/src/main/java/com/example/todoapp/repository/RecipesStuffsRepository.java
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 413f9f2..642fe97 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;
/**
* レシピを新規登録する