diff --git a/commons/src/main/java/commons/Ingredient.java b/commons/src/main/java/commons/Ingredient.java index 682deb1..c824912 100644 --- a/commons/src/main/java/commons/Ingredient.java +++ b/commons/src/main/java/commons/Ingredient.java @@ -20,13 +20,12 @@ public class Ingredient { @Id @GeneratedValue(strategy = GenerationType.AUTO) - public long id; + public Long id; // FIXME Dec 22 2025::temporarily made this not a unique constraint because of weird JPA behaviour @Column(name = "name", nullable = false, unique = false) public String name; - @Column(name = "protein", nullable = false) public double proteinPer100g; @@ -70,7 +69,7 @@ public class Ingredient { + fatPer100g * KCAL_PER_GRAM_FAT; } - public void setId(long id) { + public void setId(Long id) { this.id = id; } @@ -86,7 +85,7 @@ public class Ingredient { return carbsPer100g; } - public long getId() { + public Long getId() { return id; } diff --git a/commons/src/test/java/commons/IngredientTest.java b/commons/src/test/java/commons/IngredientTest.java index aeae121..6550a9f 100644 --- a/commons/src/test/java/commons/IngredientTest.java +++ b/commons/src/test/java/commons/IngredientTest.java @@ -3,6 +3,7 @@ package commons; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; class IngredientTest { @@ -25,7 +26,7 @@ class IngredientTest { assertEquals(ZERO, sugar.proteinPer100g); assertEquals(ZERO, sugar.fatPer100g); assertEquals(HUNDRED, sugar.carbsPer100g); - assertEquals(0L, sugar.id); + assertNull(sugar.id); } @Test diff --git a/server/src/main/java/server/service/RecipeService.java b/server/src/main/java/server/service/RecipeService.java index 14e819a..ef219a5 100644 --- a/server/src/main/java/server/service/RecipeService.java +++ b/server/src/main/java/server/service/RecipeService.java @@ -1,5 +1,6 @@ package server.service; +import commons.Ingredient; import commons.Recipe; import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; @@ -88,8 +89,11 @@ public class RecipeService { recipeIngredient.setIngredient( ingredientRepository .findByName(recipeIngredient.getIngredient().name) - .orElseGet(() -> ingredientRepository.save(recipeIngredient.getIngredient()) - )) + .orElseGet(() -> { + Ingredient i = recipeIngredient.getIngredient(); + i.setId(null); + return ingredientRepository.save(i); + })) ); recipeIngredientRepository.saveAll(recipe.getIngredients()); return recipeRepository.save(recipe);