आप javax.persistence.StoreedProcedureQuery का उपयोग करके संग्रहीत कार्यविधि को कॉल कर सकते हैं। आपको अपनी इकाई पर कुछ भी घोषित करने की आवश्यकता नहीं है।
मेरा सुझाव है कि प्रक्रिया कॉलिंग लॉजिक को सेवा में ले जाएं और फिर अपने नियंत्रक से सेवा विधि को कॉल करें।
उदाहरण के लिए:
@Service
public class LoginServiceImpl implements LoginService {
@PersistenceContext
private EntityManager entityManager;
public Boolean checkUsernameAndPassword(String username, String password) {
//"login" this is the name of your procedure
StoredProcedureQuery query = entityManager.createStoredProcedureQuery("login");
//Declare the parameters in the same order
query.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
query.registerStoredProcedureParameter(3, Integer.class, ParameterMode.OUT);
query.registerStoredProcedureParameter(4, String.class, ParameterMode.OUT);
//Pass the parameter values
query.setParameter(1, username);
query.setParameter(2, password);
//Execute query
query.execute();
//Get output parameters
Integer outCode = (Integer) query.getOutputParameterValue(3);
String outMessage = (String) query.getOutputParameterValue(4);
return true; //enter your condition
}
}
और फिर, आप अपनी LoginService
. को इंजेक्ट करने के बाद, अपने कंट्रोलर से इस विधि को कॉल कर सकते हैं ।