#angular #spring
#angular #spring
Вопрос:
Я разрабатываю приложение angular 6 / spring boot. У меня есть следующие связи: когда я пытаюсь сохранить объект Quote, это работает, если объект Customer равен null. Но если я хочу сохранить объект Quote у customer, я получаю сообщение :
Клиент общедоступного абстрактного класса @Entity @Inheritance реализует Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idCustomer;
@Column(unique = true)
@NotNull
private String code;
private String name;
private String address;
private String email;
private String phone;
private String city;
@OneToMany(mappedBy="customer")
private List<Order> orders;
private byte status;
@OneToMany(mappedBy="customer")
private List<Quote> quote;
@JoinColumn(name="country")
@ManyToOne
private Country country;
@Entity
public class Individual extends Customer{
private String firstname;
private String gender;
@Entity
public class Company extends Customer implements Serializable{
private static final long serialVersionUID = 1L;
@NotNull
private String legalForm;
@Entity
public class Quote implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idQuote;
private LocalDate dateQuote;
@OneToMany(fetch = FetchType.EAGER, mappedBy="quote",
cascade=CascadeType.ALL)
private List<QuoteLine> items;
@ManyToOne
@JoinColumn(name="id_customer",nullable=false)
private Customer customer;
исключение com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не удается создать экземпляр com.pam.entities.Customer
(не существует создателей, подобных конструкции по умолчанию): абстрактные типы либо должны быть сопоставлены с конкретными типами, иметь пользовательский десериализатор, либо содержать дополнительную информацию о типе
Ответ №1:
Вам необходимо использовать методы конструктора по умолчанию и средства получения setter. Вы это написали?
Комментарии:
1. Конструктор где?
2. Внутри вашей компании класса POJO. ajav Quote.java
3. Да, у меня есть конструктор по умолчанию и установщики / получатели во всех классах
4. Хорошо .. Можете ли вы попробовать, поместив данную аннотацию на Company.java класс на уровне класса. @JsonDeserialize(как = Company.class )
5. Я пытаюсь это сделать, но у меня та же ошибка: в [Источник: (PushbackInputStream); строка: 1, столбец: 460] (через цепочку ссылок: com.pam.entities. Цитирую[«customer»])] с основной причиной ….