В моем приложении java spring я работаю с hibernate и jpa, и я использую jackson для заполнения данных в DB.
Вот класс пользователя:
@Data
@Entity
public class User{
@Id
@GeneratedValue
Long id;
String username;
String password;
boolean activated;
public User(){}
}
а второй класс:
@Entity
@Data
public class Roles {
@Id
@GeneratedValue
Long id;
@OneToOne
User user;
String role;
public Roles(){}
}
В классе Роли у меня есть свойство User а затем я сделал json файл для хранения данных:
[ {"_class" : "com.example.domains.User", "id": 1, "username": "Admin", "password": "123Admin123","activated":true}
,
{"_class" : "com.example.domains.Roles", "id": 1,"user":1, "role": "Admin"}]
К сожалению, когда я запускаю приложение, он жалуется:
.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.example.domains.User: no int/Int-argument constructor/factory method to deserialize from Number value (1)
at [Source: N/A; line: -1, column: -1] (through reference chain: com.example.domains.Roles["user"])
Проблема возникает из
{"_class" : "com.example.domains.Roles", "id": 1,"user":1, "role": "Admin"}
и когда я удаляю вышеприведенную строку, приложение работает хорошо.
Я думаю, он жалуется, потому что не может создать экземпляр пользователя. Итак, как я могу это исправить?