All ways to access lists

I’m a little bit confused regarding all ways to access list of an entity:

List<Customer> list = dataManager.load(Customer.class).list();
FluentLoader<Customer, UUID> customer = dataManager.load(Customer.class);
List<Customer> list = customer.list();
(by the way what is this FluentLoader?)
private List<Customer> loadAllCustomers() {
LoadContext<Customer> loadContext = LoadContext.create(Customer.class);
return dataManager.loadList(loadContext);

There are the same??
However for instance, number two produce : [IllegalStateException: Cannot get unfetched attribute aaa from detached object bbb] even the related view is ok, has the second attribute property.

Best Regards,


(1) should be used in application code.
(2) is the same as (1), but it makes no sense to extract FluentLoader to a variable.
(3) is a generic way and used inside the framework.

All of them yield the same result if used properly. Actually (1) delegates to (3).

Thank you!