在圣杯中对哪个域对象执行查询是否重要


执行

查询时使用哪个域对象重要吗?例如,我有两个域对象

Class A {
    String name
}
Class B {
    String name
}

如果我想获取所有 A 对象,我可以执行以下操作

A.executeQuery('FROM A')

但是我也可以从不同的域对象调用相同的查询,并获得完全相同的结果

B.executeQuery('FROM A')

这两个语句在性能方面有区别吗?也许引擎盖下发生的事情有所不同?

为了获得更多上下文,我正在编写一个服务,其中应用程序将动态执行域对象的查询。因此,我可以选择一个基本域对象并每次都执行它,或者我可以使用提供给方法的字符串创建域对象的实例。

谢谢

不,没关系。在这种情况下,它只是执行 HQL(休眠查询(,并且任一域类在这方面的行为完全相同 executeQuery .

在您的特定情况下,我只会使用单个域类来执行所有查询。无需更改类型。

执行查询时使用的域对象是否重要?

这取决于您使用的查询技术。 特别是对于executeQuery,它没有。 对于大多数其他查询技术,它确实如此。 例如,A.executeQuery('FROM A')B.executeQuery('FROM A')相同。 A.list()B.list()不同。 A.findAllByTitle('Tribe')B.findAllByTitle('Tribe')不一样,A.where { ... }B.where { ...}不一样,等等......

相关内容

  • 没有找到相关文章

最新更新