Сущность пользователя:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int userId;
private String firstName;
private String lastName;
private String emailId;
private String phoneNumber;
@OneToMany(mappedBy="user", cascade= CascadeType.ALL, orphanRemoval = true)
private Set<Address> Addresses = new HashSet<Address>();
Сущность адреса:
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int addressId;
private String streetName;
private String houseNumber;
private String pinCode;
private String district;
private String state;
@ManyToOne(fetch = FetchType.LAZY, cascade= CascadeType.ALL)
@JoinColumn(name="userId")
@JsonIgnore
private User user = new User();
Класс контроллера:
@RestController
public class UserController {
@Autowired
IUserService iUserService;
@RequestMapping(path = "/update")
public User updateCustomer(@RequestBody User user) {
return iUserService.save(user);
}
}
Когда я вызываю метод updateCustomer
, неверные данные хранится. Вставленные значения приведены ниже,
SELECT * FROM ADDRESS ;
ADDRESS_ID DISTRICT HOUSE_NUMBER PIN_CODE STATE STREET_NAME USER_ID
1 kalaburgi 287 585105 karnataka jyanagar 2
2 bangalore 1387 560062 karnataka anjanpura 3
(2 rows, 1 ms)
SELECT * FROM USER;
USER_ID EMAIL_ID FIRST_NAME LAST_NAME PHONE_NUMBER
1 test@gmil.com sharan gilke 9900669988
2 null null null null
3 null null null null
Не могли бы вы подсказать, почему неверные данные хранятся для таблицы user
.
Входные данные почтальона:
{
"firstName" : "sharan",
"lastName" : "gilke",
"emailId" : "test@gmil.com",
"phoneNumber" : "9900669988",
"addresses" : [{
"streetName" : "jyanagar",
"houseNumber" : "287",
"pinCode" : "585105",
"district" : "kalaburgi",
"state" : "karnataka"
},
{
"streetName" : "anjanpura",
"houseNumber" : "1387",
"pinCode" : "560062",
"district" : "bangalore",
"state" : "karnataka"
}
]
}