在Hibernate中,返回单个对象还是列表更好<;T>;只有一个元素?

在Hibernate中,返回单个对象还是列表更好<;T>;只有一个元素?,hibernate,Hibernate,假设我有一个类Foo,我有一个FooRepository类,它有一个方法select() select()方法返回对象的List集合 现在,我需要一个总是返回单个对象的select_one()方法。返回类型Foo或List时,列表中只有一个项是最好的吗?我说的是性能和最佳实践 谢谢从性能角度看,返回单个对象总是更好的 但是,从设计的角度来看,这实际上取决于使用类的代码。如果您希望做出所有方法都应返回列表的设计决策,则使用者代码始终可以编写如下代码: List<Foo> listOfO

假设我有一个类
Foo
,我有一个
FooRepository
类,它有一个方法
select()

select()
方法返回对象的
List
集合

现在,我需要一个总是返回单个对象的
select_one()
方法。返回类型
Foo
List
时,列表中只有一个项是最好的吗?我说的是性能和最佳实践


谢谢

从性能角度看,返回单个对象总是更好的

但是,从设计的角度来看,这实际上取决于使用类的代码。如果您希望做出所有方法都应返回列表的设计决策,则使用者代码始终可以编写如下代码:

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

// or 

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

foreach(Foo foo in listOfObjects)
{
    // process the selected objects..
}
listOfObjects=yourclasinstance.select();
//或
List listOfObjects=yourClassInstance。选择一个();
foreach(对象列表中的Foo-Foo)
{
//处理所选对象。。
}
所以,这真的取决于你,取决于你最关心什么


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

从性能角度看,这不可能成为瓶颈。让它发挥作用,然后继续前进。