2
我有两个表在我的DB,T1和T2。 T1的一列是引用T2的外键。我只需要T1和T2的一部分列进行处理,因此我创建了一个只包含必要列的DTO T1T2。为了使用Hibernate将DTO映射到这两个表,我使用了类元素的subselect属性。只读多DTO +休眠
<hibernate-mapping>
<class
name="com.xconnect.cdrrecorder.processing.dto.IngressNumRuleVoipProfile"
table="numbermodificationrules"
subselect="select ... from T1 left join T2 on id1=id2 where ...">
<cache usage="read-only"/>
...
</class>
</hibernate-mapping>
我注意到,当我需要选择一个对象时,Hibernate将请求转换为两个选择(一个到另一个)。
有没有更好的方法来做到这一点?你对演出有什么看法?
感谢
感谢您的回答。在这[链接](http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html)(5.1.1节)中,解释了使用子选择。我的问题是,在哪些情况下,我们需要使用子查询来代替其他查询方式? –
正如链接中所述,_有时您想使用视图,但不能在数据库中创建一个视图(即使用传统模式)。在这种情况下,您可以将不可变且只读的实体映射到给定的SQL子查询表达式_。如果可以的话,去看看。 – ManuPK