как запустить процесс с переменной в activiti? - PullRequest
0 голосов
/ 20 апреля 2019

я пытался запустить процесс "ядро" с объектом 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;
    }




}
...