Reputation: 3
for some cases the master Id is null in DB and when I am fetching it it is giving me JPA system exception So is there any annotation that would help to ignore the null values. Method threw 'org.springframework.orm.jpa.JpaSystemException' exception. got it when trying to fetch details from the database.
package com.merchant.orderDahsBoard.controller;
@RestController
@RequestMapping(value = "Dashboard")
public class OrderDashboardController {
@Autowired
private DashBoardService service;
ObjectMapper mapper = new ObjectMapper();
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@PostMapping(value = "/getOrderDetails")
public OrderResponse getOrder(@PathParam(value = "id") Long id) {
OrderResponse response = new OrderResponse();
List<OrderMapping> orderMapping;
Sale sale= new Sale();
Purchase purchase = new Purchase();
long saleId = 0;
long purchaseId = 0;
try{
orderMapping = service.getOrderMapping(id);
response.setOrderMapping(orderMapping);
if (orderMapping != null) {
for (OrderMapping order : orderMapping) {
switch (order.getORDERTYPE()) {
case CART:
break;
case SALE:
saleId = order.getORDERID();
break;
case PURCHASE:
purchaseId = order.getORDERID();
break;
}
}
if(saleId!=0){
sale = service.getSale(saleId);
response.setSale(sale);
}
}
}
catch(Exception e){
log.error("Exception occured "+e);
}
return response;
}
}
below is the @Entity Class used in my project
@Entity
@Table(name = "ORDERMAPPING")
@Getter
@Setter
@ToString
public class OrderMapping {
@Id
@Column(name = "ORDERMAPPINGID")
private long ORDERMAPPINGID;
@Column(name = "MASTERID")
private long MASTERID;
@Column(name = "ORDERID")
private long ORDERID;
@Enumerated(EnumType.ORDINAL)
private OrderTypeEnum ORDERTYPE;
@Column(name = "ADDEDDATE")
private String ADDEDDATE;
@Column(name = "LASTUPDATEDDATE")
private String LASTUPDATEDDATE;
@Column(name = "CARTID")
private long CARTID;
@Column(name = "PCARTID")
private long PCARTID;
}
Upvotes: 0
Views: 487
Reputation: 668
Instead of primitive data types try using the wrapper classes for the same. The following code can help you better.
Use Long isntead of long
@Entity
@Table(name = "ORDERMAPPING")
@Getter
@Setter
@ToString
public class OrderMapping {
@Id
@Column(name = "ORDERMAPPINGID")
private Long ORDERMAPPINGID;
@Column(name = "MASTERID")
private Long MASTERID;
@Column(name = "ORDERID")
private Long ORDERID;
@Enumerated(EnumType.ORDINAL)
private OrderTypeEnum ORDERTYPE;
@Column(name = "ADDEDDATE")
private String ADDEDDATE;
@Column(name = "LASTUPDATEDDATE")
private String LASTUPDATEDDATE;
@Column(name = "CARTID")
private Long CARTID;
@Column(name = "PCARTID")
private Long PCARTID;
}
Upvotes: 1