【发布时间】:2011-06-25 16:22:05
【问题描述】:
我有一个实体。有时我需要这个对象也包含一些值,称之为'深度'。查询可能类似于'select b.id, b.name, b..., count(c.id) as depth from Entity b, CEntity c where ...'。所以我创建了扩展实体的类 NonHibernateEntity。然后上面编写的查询结果完美地存储为 NonHibEntity 列表,其中包含 Entity 的所有字段(随着它们的扩展)和属性“深度”。我通过设置 aliasToBean 结果转换器来做到这一点:.setResultTransformer(Transformers.aliasToBean(NHEntity.class)).
但是,指定所有所需字段的所有别名既烦人又不方便。
然后,如果我想将此对象之一保存到 DB - session.saveOrUpdate((Enity)nHibEntity) - 有一个关于 nHibEntity 不是 Hibernate Entity 的例外。
我听说将“实体”作为字段存储在 NonHibEntity 中(聚合,而不是继承)。但这似乎也很不方便。 你怎么看?什么是合适的解决方案?
【问题讨论】:
标签: java oop hibernate hql hibernate-mapping