具有序列化 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;
}
我正在使用 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;
}