2015-11-15 4 views
0

Хорошая практика - вызвать весеннюю фасоль из объектов сущности гибернации. Я работаю над приведенным ниже примером.вызов весеннего боба из объектов сущности гибернации

abstract class Order { 

    abstract void makePayment(PaymentObj); 
} 

//hibernate entity 
class OrderType1 extends Order{ 
    //override 
    makePayment() { 

    } 
} 

// hibernate entity 
class OrderType2 extends Order { 
    // override 
    makePayment() { 

    } 
} 

Теперь, когда метод makePayment(), я хочу вызвать платежный шлюз для обработки платежа. Для этой цели мне нужно вызвать весенний боб, где будет вызываться платежный шлюз. Хорошая практика - назвать весеннюю фасоль из спящего лица?

ответ

0

Не, смешивая entites и бизнес-логику злоупотребляет MVC- шаблоны, вы должны закодировать ваш бизнес-логику в сфере услуг

EDIT

можно создать, например, в PaymentService

public interface PaymentService { 

     public void makePayment(Order order, PaymentObj paymentObj); 
} 

@Service 
public class PaymentServiceImpl implements PaymentService { 


     private SomeNeededBean someNeededBean; 
     // Dao or repistory 
     private SomeRepository someRepoistory; 

     @Autowired 
     public PaymentServiceImpl(SomeNeededBean someNeededBean, SomeRepoistory someRepoistory){ 
      this.someNeededBean = someNeededBean, 
      this.someRepository= someRepository; 
    } 

     @Transactional 
     public void makePayment(Order order, PaymentObj paymentObj){ 
     //some implemention; 
    } 

} 

затем просто откройте свою службу в своем контроллере и вызовите makepayment в контроллерах.

+0

Тогда как следует Я рассматриваю этот сценарий? – javafan

+0

@javafan Я обновил свой ответ с помощью примера решения –