У меня есть два класса Parent Class и Child, как показано ниже:
@MappedSuperclass
public class ParentEntity implements DataSerializable {
private String createdBy;
private Date createdAt;
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Long getCreatedAt() {
return createdAt.getTime();
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
@Override
public void writeData(ObjectDataOutput out) throws IOException {
out.writeUTF(createdBy);
out.writeLong(this.getCreatedAt());
}
@Override
public void readData(ObjectDataInput in) throws IOException {
createdBy = in.readUTF();
createdAt = new Date(in.readLong());
}
}
Дочерний класс, как показано ниже: -
public class Child_Entity extends ParentEntity implements DataSerializable {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void writeData(ObjectDataOutput out) throws IOException {
out.writeUTF(id);
out.writeUTF(name);
}
@Override
public void readData(ObjectDataInput in) throws IOException {
id = in.readUTF();
name = in.readUTF();
}
}
Я получаю эти значения из базы данных и помещаю в Hazelcastкэш iMap.При получении значений из кэша я получаю правильные значения идентификатора и имени, но значения createAt и madeBy (атрибуты родительского класса) равны нулю.Как можно сериализовать родительский класс также с дочерним классом.