我正在使用 Hibernate 3.6.9 作为 ORM 和 xml 映射的 Java 应用程序。实际上,有两个实体,Detectable和Revision,Detectable与Revision有一对多的关系,它的整个完成的修订集被映射:
<set name="_Revisions" table="trevision" inverse="true" lazy="true">
<key>
<column name="id_detectable" />
</key>
<one-to-many class="com.company.model.tasks.Revision" />
</set>
另请参阅我发布的类似问题。我现在想要的是在类的一个单独字段中获得最后一个修订:
<many-to-one name="_LastDoneRevision" column="id_detectable"
class="com.company.model.tasks.Revision" lazy="false" />
我想要实现的是总是急切地获取最新版本(我在大多数情况下使用的)。除此之外,如果我愿意,我可以获得整套修订,但默认情况下它是惰性初始化的。为此,可能需要使用自定义查询从整个集合中完成最后一次修订。
我认为这不能用公式来实现,因为它们只是检索一个值,而不是整个实体。我希望能够以某种方式选择many-to-one
关系应该具有的内容。
一种解决方案可能是使用视图而不是Detectable表本身。这样我就可以拥有一个VDetectable实体,该实体将映射到视图,并且视图可以获得所有原始属性以及对我感兴趣的修订版的引用。
无论如何,是否可以仅使用原始实体加载它?