具有序列化 object 列的 Ebean 数据库模型

Ebean database model with a serialized object column

我正在使用 ebean 的 playframework。 我有以下型号:

public class MailData {
  private String title;
  private String body;
}

public class Envelope extends Model {
  @Id
  private UUID id;

  private MailData mailData;
  private Date sent;
}

我想要一个数据库table,信封。 此 table 应该有一个 MailData 列,其中将存储 MailData object 的序列化字符串。我该怎么做?

我最接近的是@Embeddable 和@Embedded 标签,这导致字段标题和body 位于信封table 内,这不是预期的结果。

我找到了一种使用转换器来完成此操作的方法:

@Converter
public class MailDataConverter implements AttributeConverter<MailData, String> {
  @Override
  public String convertToDatabaseColumn(MailData attribute) {
    //serialize here
  }

  @Override
  public MailData convertToEntityAttribute(String dbData) {
    //deserialize here
  }
}

public class MailData {
  private String title;
  private String body;
}

public class Envelope extends Model {
  @Id
  private UUID id;

  @Column
  @Convert(converter = MailDataConverter.class)    
  private MailData mailData;

  private Date sent;
}