在Hibernate中,最好只返回单个Object或List <t>只有一个元素吗?</t>

时间:2011-03-14 14:54:48

标签: hibernate

假设我上课Foo并且我有一个FooRepository课,其方法为select()

select()方法返回List<Foo>个对象集合。

现在,我想要一个始终返回单个对象的select_one()方法。是否最好只返回列表中 ONE 项目的FooList<Foo>类型?我说的是性能和最佳实践。

由于

1 个答案:

答案 0 :(得分:2)

性能方面,返回单个对象总是更好。

但是,从设计的角度来看,它实际上取决于消耗你的类的代码。如果您想做出所有方法都应返回列表的设计决策,那么使用者代码总是可以编写如下代码:

List<Foo> listOfObjects = yourClassInstance.select();

// or 

List<Foo> listOfObjects = yourClassInstance.select_one();

foreach(Foo foo in listOfObjects)
{
    // process the selected objects..
}

所以,这取决于你最关心的事情,这取决于你。

但请记住,List有开销,因为在内部它总是创建一个T类型的数组,以及其他辅助成员。如果您希望消费者多次调用创建 list-of-one 的代码,这将变得非常重要,因为它会创建许多列表,因此会耗尽更多内存并且可能会更慢。