я пытался запустить процесс "ядро" с объектом Person (Person является абстрактным и
RealPerson расширяет Person, и я передаю RealPerson этому методу)
:
public void startProcess(Person person) {
Map<String, Object> map = new HashMap<>();
map.put("person", person);
runtimeService.startProcessInstanceByKey("core",map);
}
но я получаю это:
org.activiti.engine.ActivitiException: не удалось сериализовать значение
'ir.enbank.core.model.entitiy.RealPerson@725e40ee' в переменной
'Человек'
как я могу это сделать?
UPDATE:
@Entity
@EntityListeners(AuditingEntityListener.class)
public abstract class Person implements Serializable {
@Id
@GeneratedValue
private Integer id;
@Version
private Integer version;
@NotNull
private String name;
@NotNull
private String family;
@NotNull
private Date date;
@NotNull
private Sex sex;
@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true)
private List<Deposit> deposit;
@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true)
private List<Phone> phones;
@NotNull
private String address;
public Person() {
}
public List<Deposit> getDeposit() {
return deposit;
}
public void setDeposit(List<Deposit> deposit) {
this.deposit = deposit;
}
public String getAddress() {
return address;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public Sex getSex() {
return sex;
}
public void setSex(Sex sex) {
this.sex = sex;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFamily() {
return family;
}
public void setFamily(String family) {
this.family = family;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public List<Phone> getPhones() {
return phones;
}
public void setPhones(List<Phone> phones) {
this.phones = phones;
}
}
ОБНОВЛЕНИЕ 2:
@Entity
public class RealPerson extends Person {
@NotNull
private String email;
@RecognizerCode
private Integer nationalCode;
public Integer getNationalCode() {
return nationalCode;
}
public void setNationalCode(Integer nationalCode) {
this.nationalCode = nationalCode;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}