Mysql
 sql >> база данни >  >> RDS >> Mysql

как да извика съхранената процедура на MySQL при пролетно зареждане с помощта на хибернация?

Можете да извикате съхранена процедура с помощта на javax.persistence.StoredProcedureQuery. Дори не е необходимо да декларирате нищо за вашия обект.
Бих предложил да преместите логиката за извикване на процедура към услуга и след това да извикате метода на услугата от вашия контролер.

Например:

@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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стартирайте MySQL на порт 3307 с помощта на Docker Compose

  2. Намерете всички онези колони, които имат само нулеви стойности, в MySQL таблица

  3. Hibernate CriteriaBuilder, за да се присъедините към няколко таблици

  4. 500 - Възникна грешка - функцията DB не отчита грешки при добавяне на нова статия в Joomla

  5. Висока наличност при ограничен бюджет - внедряване на MySQL Galera Cluster с минимален два възела