Я пытаюсь сохранить класс Product в базе данных.
У меня есть класс Food, загруженный из foregin Api, и в этом классе много ненужных полей. Могу ли я просто продлить еду на продукт, как показано ниже
Если нет, есть ли более короткий способ разобрать это без перенастройки каждого поля?
public class Food extends Product{
lot of fields(..)
}
@Entity
public class Product{
@Id
Long id;
part of fields from Food class(...)
}
и затем сохраните его
Product product = food;
productService.save(product);
Я получаю сообщение об ошибке:
ERROR 10632 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Unknown entity: pl.manciak.nutritionixapi.dto.NutriResponse.Food; nested exception is java.lang.IllegalArgumentException: Unknown entity: pl.manciak.nutritionixapi.dto.NutriResponse.Food] with root cause
java.lang.IllegalArgumentException: Unknown entity: pl.manciak.nutritionixapi.dto.NutriResponse.Food
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:713) ~[hibernate-core-5.4.12.Final.jar:5.4.12.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:696) ~[hibernate-core-5.4.12.Final.jar:5.4.12.Final]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:368) ~[spring-orm-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at com.sun.proxy.$Proxy89.persist(Unknown Source) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at
...