Проблема в том, что я не могу сохранить членов базового класса в БД при вызове .save () для дочернего класса.
У меня есть два класса: класс A, класс B, у меня есть три общих члена в обоих этих классах creationTimestamp, lastUpdatedTimestamp, version, так как они были общими, я думал, что переместу их в базовый класс, скажем, класс C. Но когда я сделать mapper.save () на объект класса A, я не получаю членов класса C в БД.
@Getter
@Setter
@DynamoDBDocument
@EqualsAndHashCode
@NoArgsConstructor
abstract class C {
@DynamoDBVersionAttribute
private Long version;
@DynamoDBAutoGeneratedTimestamp(strategy = DynamoDBAutoGenerateStrategy.CREATE)
@DynamoDBTypeConvertedTimestamp
private Long creationTimestamp;
@DynamoDBAutoGeneratedTimestamp(strategy = DynamoDBAutoGenerateStrategy.ALWAYS)
@DynamoDBTypeConvertedTimestamp
private Long lastUpdatedTimestamp;
}
Класс A:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@DynamoDBTable(tableName = "A")
public class A {
private String id;
}
Теперь, если я выполняю mapper.save () для объекта класса A, он только сохраняет id в db.
A a = A.builder().id("random").build();
mapper.save(a);
Скорее, он должен был показать версию, creationTimestamp, lastUpdatedTimestamp, id какие-либо идеи, что я здесь не так делаю?