PB sur méthode findAll dans OrderService. [RESOLU]

Modérateurs : graffion, jmdouin, agoncal, mlebihan

cadart_g
Messages : 27
Inscription : 20 oct. 2015 18:06

PB sur méthode findAll dans OrderService. [RESOLU]

Message par cadart_g » 11 nov. 2015 19:44

Je ne comprends pas bien l'objet de la méthode findAll appelée à la ligne 87 de la classe OrderService

Code : Tout sélectionner

    public Order findOrder(final String orderId) throws FinderException, CheckException {
        // Finds the object
        final Order order = (Order) _orderDAO.findByPrimaryKey(orderId);

        // Retreives the data for the customer and sets it
        Customer customer = (Customer) _customerDAO.findByPrimaryKey(order.getCustomer().getId());
        order.setCustomer(customer);

        // Retreives the data for all the order lines
        final Collection orderLines = _orderLineDAO.findAll(orderId);
        order.setOrderLines(orderLines);

        return order;
    } {

Logiquement, elle doit retourner un objet Collection contenant toutes les lignes du bon de commande, Jusque là, nous sommes d'accord,
Mais curieusement, il me demande de créer cette méthode dans OrderLineDAO, ce qui n'a pas de sens, il me semble, pour retourner un objet Collection.

Voici l'héritage de mes classes :
public class Order extends DomainObject implements Serializable{
public class OrderDAO extends AbstractDataAccessObject{
public final class OrderLineDAO extends AbstractDataAccessObject {
public final class CustomerService {

En vous remerciant pour votre aide.
public class OrderLine extends DomainObject implements Serializable{

lamy
Messages : 6
Inscription : 12 oct. 2013 14:37

Re: PB sur méthode findAll dans OrderService.

Message par lamy » 11 nov. 2015 20:28

Bonsoir,

Je pense que ça a un sens dans la mesure où l'organisation du code via le pattern DAO suppose un regroupement des accès (vers la source de données) par objet métier. Ce que je veux dire, c'est que comme on a une entité OrderLine dans les spécifications, et qu'une classe OrderLineDAO est utilisée comme "interface" d'accès aux données de cette entité, il est logique que si l'on souhaite récupérer une liste de lignes de commande, il nous faille passer par OrderLineDAO.
A ne pas confondre avec les classes métiers (héritant de DomainObject) où il est effectivement normal de disposer d'une méthode de récupération d'une liste d'OrderLine depuis la classe Order.

graffion
Messages : 651
Inscription : 21 juin 2005 14:05

Re: PB sur méthode findAll dans OrderService.

Message par graffion » 18 nov. 2015 14:26

Bonjour,

Cette méthode est mal nommée. Elle devrait plutôt s'appeler findAllItemsForOrder(String orderId).

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité