Ниже мой Контроллер
@PostMapping(value="/shoppingcart")
ResponseEntity<ResponseDTO<ShoppingCartItem>>
insertItems(@RequestParam("cartId")Long cartId, @RequestParam ("itemsKey")
Long itemkey) {
ResponseDTO<ShoppingCartItem> responseDTO = new ResponseDTO<>();
Meta meta = new Meta();
ShoppingCartItem cartItem = null;
ShoppingCartItem saveItem = new ShoppingCartItem();
ShoppingCart cart = new ShoppingCart();
cart.setId(cartId);
Items item = new Items();
item.setId(itemkey);
saveItem.setCart(cart);
saveItem.setItem(item);
cartItem = shoppingCartItemService.save(saveItem);
return new ResponseEntity<ResponseDTO<ShoppingCartItem>>(responseDTO, HttpStatus.OK);
}
Это мой Класс сущности:
@Entity
@Table(name = "tb_shoppingcart_items")
public class ShoppingCartItem implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long cartItemId;
@ManyToOne
@MapsId("shoppingcartId")
private ShoppingCart cart;
@ManyToOne
@MapsId("itemsId")
private Items item;
@Column(name = "quantity")
private boolean quantity;
public Long getCartItemId() {
return cartItemId;
}
public void setCartItemId(Long cartItemId) {
this.cartItemId = cartItemId;
}
public ShoppingCart getCart() {
return cart;
}
public void setCart(ShoppingCart cart) {
this.cart = cart;
}
public Items getItem() {
return item;
}
public void setItem(Items item) {
this.item = item;
}
public boolean isQuantity() {
return quantity;
}
public void setQuantity(boolean quantity) {
this.quantity = quantity;
}
}
@Entity
@Table(name = "tb_shoppingcart")
public class ShoppingCart implements Serializable {
/**
*
*/
private static final long serialVersionUID = -2114870327410506836L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name = "dateCreated")
private Date datecreated;
/*
* @JsonIgnore
*
* @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) List<Items> items
* = new ArrayList<>();
*/
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getDatecreated() {
return datecreated;
}
public void setDatecreated(Date datecreated) {
this.datecreated = datecreated;
}
/*
* public List<Items> getItems() { return items; }
*
* public void setItems(List<Items> items) { this.items = items; }
*/
}
Яполучить следующее исключение при сохранении моего shoppingcartItem в базе данных:
ОШИБКА [http-nio-8090-exec-2] org.apache.juli.logging.DirectJDKLog: Servlet.service () для servlet [dispatcherServlet]в контексте с путем [] выдало исключение [Ошибка обработки запроса;вложенным исключением является org.springframework.beans.NotReadablePropertyException: недопустимое свойство 'id' класса бина [com.epam.item.model.ShoppingCartItem]: не удалось найти поле для свойства во время резервного доступа!] с коренной причиной org.springframework.beans.NotReadablePropertyException: недопустимое свойство 'id' класса бина [com.epam.item.model.ShoppingCartItem]: не удалось найти поле для свойства во время резервного доступа!по адресу org.springframework.data.util.DirectFieldAccessFallbackBeanWrapper.getPropertyValue (DirectFieldAccessFallbackBeanWrapper.java:58) по адресу org.springframework.data.jpa.repository.support.JpaMetamodelEata.core.support.AbstractEntityInformation.isNew (AbstractEntityInformation.java:42) в org.springframework.data.jpa.repository.support..SimpleJpaRepository.save (SimpleJpaRepository.java:488) в sun.reflect.NativeMethodAccessorImpl.invoke0 (родной метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java.Impor.Impit.: 43) в java.lang.reflect.Method.invoke (Method.java:498) в org.springframework.data.repository.core.support.RepositoryComposition $ RepositoryFragments.invoke (RepositoryComposition.java:359) в org.springframework.data.repository.core.support.RepositoryComposition.invoke (RepositoryComposition.java:200) в org.springframework.data.repository.core.support.RepositoryFactoryTort для подпорка.Java: 644) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) в org.springframework.data.repository.core.support.RepositoryFactorySupportMeditionFort.OuGor.springframework.) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) в org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke (DefaultMethodInvokingMethodInterceptor.java:59) при org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) в org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction (TransactionAspectSupport.java: 294) в org.springframework.transaction.interceptor.TransactionInterceptor.invoke (TransactionInterceptor.java:98) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodIng..PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:139) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) в org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor $ CrudMethodMetadataPopulatingMethodInterceptor.invoke (CrudMethodMetadataPostProcessor.java: 135)в org.springframework.aop.framework.(ReflectiveMethodInvocation.java:186) по адресу org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke (SurroundingTransactionDetectorMethodInterceptor.javaorg.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212) по адресу com.sun.proxy.Java: 19) в com.epam.item.controller.ItemController.insertItems (ItemController.java:180) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.web.jp..support.InvocableHandlerMethod..invokeAndHandle (ServletInvocableHandlerMethod.java:102) по адресу org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.hoing.homent.hoterh.handleInternal (RequestMappingHandlerAdapter.java:800) в org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:87) в org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:1038) в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:942) в org.springframework.web.server.jerv.1005) по адресу org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:908) по адресу javax.servlet.http.HttpServlet.service (HttpServlet.java:660) по адресу org.springframeworkerFletwork.vme.serb.(FrameworkServlet.java:882) по адресу javax.servlet.http.HttpServlet.service (HttpServlet.java:741) по адресу org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:2ache.cat или org.cat) или в приложении.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:53) в org.apache.catalina.core.ApplicationFilterFilinChain.193) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) в org.springframework.web.filter.OncePerRequestFilter.doFilter (OnceaperRej) в org..core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.web.filtentFterterF (.doFilter (ApplicationFilterChain.java:166)по адресу org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java:93) по адресу org.springframework.web.filter.OncePerRequestFilter.doFilter.doFilter.FainterFainterFileter(ApplicationFilterChain.java:193) по адресу org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) по адресу org.springframework.web.filter.CharacterEncodingFilter.doFilterInworkf.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) в org.apache.catha166) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:199) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) в org.apachentic.catилив org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:74) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:343) в org.apache.coyote.hserp11orHor(Http11Processor.java:408) в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:791) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1417) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.RunWorkerJava: 1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java:748)