持久化基类不是@Entity的对象

时间:2014-07-12 08:32:29

标签: java jpa persistence esper

我有一个案例,我希望从第三方库中保留一个类的对象。更具体地说,我想保留EPStatementObjectModel类型的对象。

据我所知,这个类没有标记为@javax.persistence.Entity但是实现了Serializable,但是就目前而言,我不能直接坚持这个类。如果我理解正确保持对象,那么顶级类必须是'实体'类。这是否意味着我坚持这个类的唯一方法是使用XML描述符(我想避免使用它)?

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 您可以在问题的评论中按照pL4Gu33的建议在orm.xml文件中使用xml映射。这种方法有一个缺点 - 它需要EPStatementObjectModel类具有某种唯一标识符 - 而且我可以看到它没有公共标识符。
  2. 您还可以扩展EPStatementObjectModel类(因为它不是最终的)并将所有getter和setter包装在您自己的setter / getter方法中。在这种情况下,您可以自由地向类添加一些字段,例如唯一标识符。使用此方法可以使用注释。在需要EPStatementObjectModel对象的地方使用从数据库中检索的实体很容易(向上转换),遗憾的是,持久存在的EPStatementObjectModel对象将更加困难,因为你必须在你的子类中转换它们(向下转换) - 因此,实现类似复制构造函数的东西会很好。