我正在尝试将Product类保存到数据库中。
我从foregin Api下载了Food类,该类有很多不必要的字段。 我可以像下面这样按产品扩展食品吗?
如果没有,是否有更短的方法来解析此方法而无需重新设置每个字段?
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
...