我有一个实体Promotion,它有3个简单的字段(id,name,description),所有3个都将映射到DB。到现在为止还挺好。问题在于第4个字段ruleModel,它是RuleModel的一个实例,在运行时构造时,它将包含十几个其他类的对象实例。我不想将RuleModel映射到数据库表,因为这是一项额外的工作,也是不必要的。我只想将ruleModel对象实例存储到DB中,然后能够从DB加载ruleModel并在内存中恢复对象实例。
代码:
@Entity
public class Promotion {
@Id
@GeneratedValue
private Long id;
private String name;
private String description;
private RuleModel ruleModel;
}
答案 0 :(得分:0)
如果使Rule Model类实现Serializeable接口,那么您应该能够将一个RuleModel变量添加到Promotion类。 这将需要在Promotion表中添加新列。 当您持久化Promotion类时,RuleModel类实例的seraralized实例将存储在新列中。
答案 1 :(得分:0)
如果我理解正确,您正在尝试序列化 RuleModel 实例 - 其中包含对许多其他实例的引用 - 当您反序列化它时,您将接受所有引用 ruleModel之前举行的会丢失。如果这是您的目标,您需要做两件事:
虽然这不会将 ruleModel 实例持久保存到单个列中,但它会将实例持久保存到 Promotion 使用的同一个表的多个列中。它还可以根据需要重新实现 ruleModel 。