「デタッチされたインスタンスの削除」例外を取得する REST コントローラーから以下の Customer オブジェクトを削除しようとすると。
ログ:
org.springframework.dao.InvalidDataAccessApiUsageException: Removing a detached instance com.test.model.Customer#1750; nested exception is java.lang.IllegalArgumentException: Removing a detached instance com.test.model.Customer#1750
ドメイン:
@Entity
public class Customer{
@Id
private Long id;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="COUNTRY_ID", nullable=false)
private Country country;
// other stuff with getters/setters
}
REST コントローラー:
@Controller
@RequestMapping("/shop/services/customers")
public class CustomerRESTController {
/**
* Deletes a customer
*/
@RequestMapping( value="/{id}", method=RequestMethod.DELETE)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteCustomer(@PathVariable Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
Customer customer = customerService.getById(id);
if(customer != null){
customerService.delete(customer);
}else{
response.sendError(503, "No Customer found for ID : " + id);
}
}
// other stuff
}
私はデータベースから顧客オブジェクトを取得していますが、まだ休止状態に不満があります。なにか提案を??