У меня есть база данных со следующей структурой:
Когда я делаю вызов REST для user_product с намерением обновить количество продуктов со следующей полезной нагрузкой:
{
"user": 4,
"product": "2",
"amountOfNewProducts": 32
}
я продолжаю получать Parameter value [...UserProductId@3c5] did not match expected type [java.lang.Integer (n/a)]
error.
My ServiceImplementation:
@Override
public void update(UserProductVO userProductVO) {
UserProduct userProduct = new UserProduct();
userProduct.setId(new UserProductId(userProductVO.getProduct().getId(), userProductVO.getUser().getId()));
Product product = productRepository.getById(userProduct.getId());
product.setAmount(product.getAmount() + userProductVO.getAmountOfNewProducts());
productRepository.save(product);
userProduct.setProduct(product);
userProduct.setUser(new User(userProductVO.getUser().getId()));
userProduct.setAmountOfNewProducts(userProductVO.getAmountOfNewProducts());
userProductRepository.save(userProduct);
}
Хотя, когда я пытался записать данные с этим код:
@Override
public void update(UserProductVO userProductVO) {
UserProduct userProduct = new UserProduct();
userProduct.setId(new UserProductId());
userProduct.setUser(userProductVO.getUser());
userProduct.setProduct(userProductVO.getProduct());
userProduct.setAmountOfNewProducts(userProductVO.getAmountOfNewProducts());
productRepository.updateProduct(userProductVO.getAmountOfNewProducts(), userProductVO.getProduct().getId());
userProductRepository.save(userProduct);
}
Это сработало, хотя с ошибкой. Он продолжал записывать данные до тех пор, пока не произойдет сбой сервера:
{
"id": 4,
"name": "Grimbergen Blonde",
"price": 132,
"mass": 0.33,
"alcohol": 6.7,
"picture": "https://i.imgur.com/OnioHd5.png",
"amount": 435,
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
"id": {
"productId": 18,
"userId": 4
},
"user": {
"id": 4,
"userName": "drapastadrapa",
"firstName": "Damir",
"lastName": "Danski",
"password": "drapa",
"authorization": "worker",
"userProducts": [
{
.......and so on.
Проблема в том, как я написал ServiceImpl, или проблема может быть в самой базе данных? Любая подсказка будет оценена.