Example usage for org.springframework.dao DataAccessException getMessage

List of usage examples for org.springframework.dao DataAccessException getMessage

Introduction

In this page you can find the example usage for org.springframework.dao DataAccessException getMessage.

Prototype

@Override
@Nullable
public String getMessage() 

Source Link

Document

Return the detail message, including the message from the nested exception if there is one.

Usage

From source file:com.sfs.whichdoctor.dao.IsbMessageDAOImpl.java

/**
 * Update the process status of the ISB message.
 *
 * @param id the id//from   w ww  .ja va  2 s .  co m
 * @param processed the processed
 *
 * @return true, if successful
 *
 * @throws WhichDoctorDaoException the which doctor dao exception
 */
public final boolean updateProcessStatus(final int id, final boolean processed) throws WhichDoctorDaoException {

    boolean success = false;

    final String updateSQL = this.getSQL().getValue("isbmessage/updateProcessStatus");

    try {
        final int updateCount = this.getIsbJdbcTemplate().update(updateSQL, new Object[] { processed, id });

        if (updateCount > 0) {
            success = true;
        }

    } catch (DataAccessException de) {
        dataLogger.error("Error updating the ISB message: " + de.getMessage());
    }
    return success;
}

From source file:com.sfs.whichdoctor.search.SearchDAOImpl.java

/**
 * Search./* ww  w. ja  v a  2 s . c  o  m*/
 *
 * @param search the search
 * @param loadDetails the load details
 *
 * @return the search results bean
 *
 * @throws WhichDoctorSearchDaoException the which doctor search dao
 *             exception
 */
@SuppressWarnings("unchecked")
public final SearchResultsBean search(final SearchBean search, final BuilderBean loadDetails)
        throws WhichDoctorSearchDaoException {

    if (this.sqlHandlers == null) {
        throw new WhichDoctorSearchDaoException("The search is not configured");
    }

    if (search.getType() == null) {
        /* Incorrect type set in SearchBean */
        dataLogger.error("No search type has been set");
        throw new WhichDoctorSearchDaoException("No search type has been set");
    }

    SqlHandler sqlHandler = null;
    if (this.sqlHandlers.containsKey(search.getType())) {
        sqlHandler = this.sqlHandlers.get(search.getType());
    }

    if (sqlHandler == null) {
        throw new WhichDoctorSearchDaoException("No SQL handler found for this search");
    }

    /* Build SQL WHERE statement */
    if (search.getSearchArray() != null) {
        search.setSQLWhereComponents(search.getSQLArrayStatement(sqlHandler.getIdentifierColumn()),
                search.getAction(), search.getSearchArray(), search.getSearchArrayDescription());
    } else {
        if (search.getSearchCriteria() != null && search.getSearchConstraints() != null) {
            Map<String[], Collection<Object>> fields = sqlHandler.construct(search.getSearchCriteria(),
                    search.getSearchConstraints());

            for (String[] key : fields.keySet()) {
                search.setSQLWhereComponents(key[0], search.getAction(), fields.get(key), key[1]);

            }
        }
    }

    final String sqlWHERE = search.getSearchSQL();

    // System.out.println("- SQL where: " + sqlWHERE);

    final Collection<Object> parameters = search.getSearchParameters();

    /* Set ordering system of returned results */
    if (search.getOrderColumn() == null) {
        search.setOrderColumn(sqlHandler.getDefaultOrder());
    }
    String sqlORDER = buildOrder(search);

    /* Set range of results */
    if (search.getRequestedPage() == 0) {
        search.setRequestedPage(1);
    }
    String sqlLIMIT = buildLimit(search);

    /* Initalize SearchResultsBean to hold result */
    SearchResultsBean searchResults = new SearchResultsBean();

    // Fill with values from SearchBean
    searchResults.setOrderAscending(search.getOrderAscending());
    searchResults.setOrderColumn(search.getOrderColumn());
    searchResults.setRequestedPage(search.getRequestedPage());
    searchResults.setType(search.getType());
    searchResults.setLimit(search.getLimit());
    searchResults.setSearchCriteria(search.getSearchCriteria());
    searchResults.setSearchVectors(search.getSearchVectors());

    if (loadDetails.getBoolean("RESULT_COUNT")) {
        /* Load the result count for this search */

        StringBuffer countSQL = new StringBuffer();
        countSQL.append(sqlHandler.getCountSql());
        countSQL.append(sqlWHERE);

        dataLogger.info("SQL Query: " + countSQL.toString());

        /* System.out.println("- SQL count: " + countSQL.toString()); */

        try {
            JdbcTemplate jdbcTemplate = this.getJdbcTemplateReader();
            if (!sqlHandler.getDefaultConnection()) {
                jdbcTemplate = this.getIsbJdbcTemplate();
            }
            final int totalResults = jdbcTemplate.queryForInt(countSQL.toString(), parameters.toArray());

            searchResults.setTotalResults(totalResults);
        } catch (DataAccessException de) {
            dataLogger.error("Error getting search result count: " + de.getMessage());
        }
    }

    // BUILD SQL Statement
    StringBuffer searchSQL = new StringBuffer();
    searchSQL.append(sqlHandler.getSelectSql());
    searchSQL.append(sqlWHERE);
    searchSQL.append(sqlHandler.getGroupBy());
    searchSQL.append(sqlORDER);
    searchSQL.append(sqlLIMIT);

    dataLogger.info("SQL Query: " + searchSQL.toString());

    /* System.out.println("- SQL search: " + searchSQL.toString()); */

    Collection<Integer> objects = null;

    try {
        JdbcTemplate jdbcTemplate = this.getJdbcTemplateReader();
        if (!sqlHandler.getDefaultConnection()) {
            jdbcTemplate = this.getIsbJdbcTemplate();
        }
        objects = jdbcTemplate.query(searchSQL.toString(), parameters.toArray(), new RowMapper() {
            public Object mapRow(final ResultSet rs, final int rowNum) throws SQLException {
                return rs.getInt(1);
            }
        });

    } catch (IncorrectResultSizeDataAccessException ie) {
        dataLogger.debug("No results found for this search: " + ie.getMessage());
    }

    if (objects != null) {
        // Pass the results to the handler and load the referenced objects
        searchResults.setSearchResults(sqlHandler.load(objects, loadDetails));
    }
    return searchResults;
}

From source file:com.sfs.whichdoctor.dao.SavedSearchDAOImpl.java

/**
 * Creates the saved search.//  w w  w .  j  a  va 2  s  .com
 *
 * @param search the search
 * @param checkUser the check user
 * @return the int
 * @throws WhichDoctorDaoException the which doctor dao exception
 */
public final int create(final SearchBean search, final UserBean checkUser) throws WhichDoctorDaoException {

    if (StringUtils.isBlank(search.getName())) {
        throw new WhichDoctorDaoException("Saved search description " + "field cannot be an empty string");
    }
    if (StringUtils.isBlank(search.getType())) {
        throw new WhichDoctorDaoException("Saved search type cannot " + "be an empty string");
    }

    dataLogger.info(checkUser.getDN() + " attempting to create new " + "saved search");

    StringBuffer stbVariables = new StringBuffer();
    Collection<Object> searchParameters = search.getSearchParameters();
    if (searchParameters != null) {
        for (Object parameter : searchParameters) {
            if (stbVariables.length() != 0) {
                stbVariables.append(VARIABLE_DIVIDER);
            }
            String strParameter = String.valueOf(parameter);
            if (StringUtils.isBlank(strParameter)) {
                strParameter = " ";
            }
            stbVariables.append(strParameter);
        }
    }
    Timestamp sqlTimeStamp = new Timestamp(Calendar.getInstance().getTimeInMillis());

    ArrayList<Object> parameters = new ArrayList<Object>();
    parameters.add(search.getName());
    parameters.add(search.getType());
    parameters.add(search.getSQLWhereStatement());
    parameters.add(stbVariables.toString());
    parameters.add(search.getOrderColumn());
    parameters.add(search.getOrderColumn2());
    parameters.add(search.getOrderColumn3());
    parameters.add(search.getDisplayOrder());
    parameters.add(checkUser.getDN());
    parameters.add(sqlTimeStamp);
    parameters.add(search.getPublicSearch());
    parameters.add(search.getFavourite());
    parameters.add(search.getDescription());

    int searchId = 0;

    try {
        final int createCount = this.getJdbcTemplateWriter().update(this.getSQL().getValue("search/create"),
                parameters.toArray());

        if (createCount > 0) {
            dataLogger.info("Sccessfully created Search");

            /* Get the last searchId value */
            searchId = this.getJdbcTemplateWriter().queryForInt(this.getSQL().getValue("search/findMax"));

        }
    } catch (DataAccessException de) {
        dataLogger.error("Error creating search: " + de.getMessage());
        throw new WhichDoctorDaoException("Error creating search: " + de.getMessage());
    }
    return searchId;
}

From source file:pe.gob.mef.gescon.hibernate.impl.PreguntaDaoImpl.java

@Override
public List<HashMap> getConcimientosDisponibles(HashMap filters) {
    String ntipoconocimientoid = ((BigDecimal) filters.get("ntipoconocimientoid")).toString();
    String nconocimientovinc = (String) filters.get("nconocimientovinc");
    final StringBuilder sql = new StringBuilder();
    Object object = null;//from ww w. j  a  v  a  2s  .c  o  m
    try {
        if (StringUtils.isNotBlank(ntipoconocimientoid) && ntipoconocimientoid.equals("1")) {
            sql.append("SELECT ");
            sql.append(
                    "    a.nbaselegalid AS ID, a.vnumero AS NUMERO, a.vnombre AS NOMBRE, a.vsumilla AS SUMILLA, ");
            sql.append(
                    "    a.ncategoriaid AS IDCATEGORIA, b.vnombre AS CATEGORIA, a.dfechapublicacion AS FECHA, ");
            sql.append(
                    "    1 AS IDTIPOCONOCIMIENTO, 'Base Legal' AS TIPOCONOCIMIENTO, a.nestadoid AS IDESTADO, c.vnombre AS ESTADO ");
            sql.append("FROM TBASELEGAL a ");
            sql.append("    INNER JOIN MTCATEGORIA b ON a.ncategoriaid = b.ncategoriaid ");
            sql.append("    INNER JOIN MTESTADO_BASELEGAL c ON a.nestadoid = c.nestadoid ");
            sql.append("WHERE a.nactivo = :ACTIVO ");
            sql.append("AND a.nestadoid IN (3,5,6) "); // Publicada, Concordada y Modificada.
            if (StringUtils.isNotBlank(nconocimientovinc)) {
                sql.append("AND a.nbaselegalid NOT IN (").append(nconocimientovinc).append(") ");
            }
        }
        if (StringUtils.isNotBlank(ntipoconocimientoid) && ntipoconocimientoid.equals("2")) {
            sql.append("SELECT ");
            sql.append("    a.npreguntaid AS ID, '' AS NUMERO, a.vasunto AS NOMBRE, a.vdetalle AS SUMILLA, ");
            sql.append(
                    "    a.ncategoriaid AS IDCATEGORIA, b.vnombre AS CATEGORIA, a.dfechacreacion AS FECHA, ");
            sql.append("    2 AS IDTIPOCONOCIMIENTO, 'Preguntas y Respuestas' AS TIPOCONOCIMIENTO, ");
            sql.append("    a.nsituacionid AS IDESTADO, c.vnombre AS ESTADO ");
            sql.append("FROM TPREGUNTA a ");
            sql.append("    INNER JOIN MTCATEGORIA b ON a.ncategoriaid = b.ncategoriaid ");
            sql.append("    INNER JOIN MTSITUACION c ON a.nsituacionid = c.nsituacionid ");
            sql.append("WHERE a.nactivo = :ACTIVO ");
            sql.append("AND a.nsituacionid = 6 "); // Publicado
            if (StringUtils.isNotBlank(nconocimientovinc)) {
                sql.append("AND a.npreguntaid NOT IN (").append(nconocimientovinc).append(") ");
            }
        }
        if (StringUtils.isNotBlank(ntipoconocimientoid)
                && (ntipoconocimientoid.equals("3") || ntipoconocimientoid.equals("4")
                        || ntipoconocimientoid.equals("5") || ntipoconocimientoid.equals("6"))) {
            sql.append("SELECT ");
            sql.append(
                    "    a.nconocimientoid AS ID, '' AS NUMERO, a.vtitulo AS NOMBRE, a.vdescripcion AS SUMILLA, ");
            sql.append(
                    "    a.ncategoriaid AS IDCATEGORIA, b.vnombre AS CATEGORIA, a.dfechacreacion AS FECHA, ");
            sql.append("    a.ntpoconocimientoid AS IDTIPOCONOCIMIENTO, d.vnombre AS TIPOCONOCIMIENTO, ");
            sql.append("    a.nsituacionid AS IDESTADO, c.vnombre AS ESTADO ");
            sql.append("FROM TCONOCIMIENTO a ");
            sql.append("    INNER JOIN MTCATEGORIA b ON a.ncategoriaid = b.ncategoriaid ");
            sql.append("    INNER JOIN MTSITUACION c ON a.nsituacionid = c.nsituacionid ");
            sql.append("    INNER JOIN MTTIPO_CONOCIMIENTO d ON a.ntpoconocimientoid = d.ntpoconocimientoid ");
            sql.append("WHERE a.nactivo = :ACTIVO ");
            sql.append("AND a.nsituacionid = 6 AND a.NTPOCONOCIMIENTOID= ").append(ntipoconocimientoid)
                    .append(" "); // Publicado
            if (StringUtils.isNotBlank(nconocimientovinc)) {
                sql.append(" AND a.nconocimientoid NOT IN (").append(nconocimientovinc).append(") ");
            }
        }
        sql.append("ORDER BY 5, 7 DESC ");

        object = getHibernateTemplate().execute(new HibernateCallback() {
            @Override
            public Object doInHibernate(Session session) throws HibernateException {
                Query query = session.createSQLQuery(sql.toString());
                query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
                if (StringUtils.isNotBlank(sql.toString())) {
                    query.setParameter("ACTIVO", BigDecimal.ONE);
                }
                return query.list();
            }
        });
    } catch (DataAccessException e) {
        e.getMessage();
        e.printStackTrace();
    }
    return (List<HashMap>) object;
}

From source file:User_Manager.User_TblJDBCTemplate.java

public int handleCount(String handle) {
    int count = 1;
    String SQL = "select count(*) from user_detail where handle=?";
    try {//from  w w w .  j a v a2  s.c om
        count = jdbcTemplateObject.queryForObject(SQL, new Object[] { handle }, Integer.class);
    } catch (DataAccessException e) {
        System.out.println(e.getMessage());
    }
    return count;
}

From source file:com.sfs.whichdoctor.dao.TagDAOImpl.java

/**
 * Deletes the tag bean.//from  w  w w .java 2  s .co  m
 *
 * @param tag the tag
 * @param checkUser the check user
 * @param privileges the privileges
 * @return true, if successful
 * @throws WhichDoctorDaoException the which doctor dao exception
 */
public final boolean delete(final TagBean tag, final UserBean checkUser, final PrivilegesBean privileges)
        throws WhichDoctorDaoException {

    if (tag.getId() == 0) {
        throw new WhichDoctorDaoException("Tag must have a valid id");
    }
    if (StringUtils.isBlank(tag.getSecurity())) {
        throw new WhichDoctorDaoException("A security level must be set for the tag");
    }

    boolean allowDelete = privileges.getPrivilege(checkUser, tag.getSecurity(), "modify");
    // If the tag is of type private default to allow if owned by checkuser
    if (StringUtils.equalsIgnoreCase(tag.getTagType(), "Private")
            && StringUtils.equalsIgnoreCase(checkUser.getDN(), tag.getCreatedBy())) {
        allowDelete = true;
    }
    if (!allowDelete) {
        throw new WhichDoctorDaoException("Sorry, you do not have the required privileges to delete this tag");
    }

    boolean success = false;

    try {
        final int deleteCount = this.getJdbcTemplateWriter().update(this.getSQL().getValue("tag/delete"),
                new Object[] { tag.getId() });

        if (deleteCount > 0) {
            dataLogger.info(checkUser.getDN() + " successfully deleted tag");
            success = true;
        } else {
            dataLogger.error(checkUser.getUserName() + ": could not delete tag");
            throw new WhichDoctorDaoException("Failed to delete tag entry");
        }

    } catch (DataAccessException de) {
        dataLogger.error("Error deleting tag: " + de.getMessage());
        throw new WhichDoctorDaoException("Error deleting tag: " + de.getMessage());
    }
    return success;
}

From source file:com.sfs.whichdoctor.dao.IsbMessageDAOImpl.java

/**
 * Delete the IsbMessageBean./*ww w.  ja v  a 2s. c om*/
 *
 * @param message the message
 * @param checkUser the check user
 * @param privileges the privileges
 *
 * @return true, if successful
 *
 * @throws WhichDoctorDaoException the which doctor dao exception
 */
public final boolean delete(final IsbMessageBean message, final UserBean checkUser,
        final PrivilegesBean privileges) throws WhichDoctorDaoException {

    if (!privileges.getPrivilege(checkUser, "systemAdmin", "delete")) {
        throw new WhichDoctorDaoException("Insufficient user credentials " + "to delete ISB messages");
    }

    boolean success = false;

    ArrayList<Object> parameters = new ArrayList<Object>();
    parameters.add(true);

    StringBuffer sqlWHERE = new StringBuffer();
    if (message.getId() > 0) {
        sqlWHERE.append(" AND isbmessages.Id = ?");
        parameters.add(String.valueOf(message.getId()));
    }
    if (StringUtils.isNotBlank(message.getAction())) {
        sqlWHERE.append(" AND isbmessages.Action = ?");
        parameters.add(message.getAction());
    }
    if (StringUtils.isNotBlank(message.getTarget())) {
        sqlWHERE.append(" AND isbmessages.IsbTarget = ?");
        parameters.add(message.getTarget());
    }
    if (StringUtils.isNotBlank(message.getIdentifier())) {
        sqlWHERE.append(" AND isbmessages.Identifier = ?");
        parameters.add(message.getIdentifier());
    }

    if (StringUtils.equalsIgnoreCase(message.getDescription(), "Inbound")) {
        sqlWHERE.append(" AND isbmessages.IsInbound = true");
    }

    if (StringUtils.equalsIgnoreCase(message.getDescription(), "Outbound")) {
        sqlWHERE.append(" AND isbmessages.IsInbound = false");
    }

    // Delete the related ISB payload first
    final String deletePayloadSQL = this.getSQL().getValue("isbpayload/delete") + sqlWHERE.toString();

    try {
        final int deleteCount = this.getIsbJdbcTemplate().update(deletePayloadSQL, parameters.toArray());

        dataLogger.info("ISB payload records deleted: " + deleteCount);

    } catch (DataAccessException de) {
        dataLogger.error("Error deleting ISB payload: " + de.getMessage());
    }

    final String deleteSQL = this.getSQL().getValue("isbmessage/delete") + sqlWHERE.toString();

    if (dataLogger.isDebugEnabled()) {
        dataLogger.debug("Delete SQL: " + deleteSQL);
        for (Object parameter : parameters) {
            dataLogger.debug("Delete parmater: " + String.valueOf(parameter));
        }
    }

    try {
        final int deleteCount = this.getIsbJdbcTemplate().update(deleteSQL, parameters.toArray());

        if (deleteCount > 0) {
            success = true;
        }

    } catch (DataAccessException de) {
        dataLogger.error("Error deleting ISB message: " + de.getMessage());
    }
    return success;
}

From source file:org.semispace.semimeter.dao.jdbc.SemiMeterDaoJdbc.java

/**
 * @return size of stalegroup table, or -1 if any errors occur.
 *//*  ww w.j  a v a  2  s.co m*/
public int size() {
    int result = -1;
    rwl.readLock().lock();
    try {
        result = this.jdbcTemplate.queryForInt("select count(*) from meter");
    } catch (DataAccessException e) {
        log.warn("Table probably not yet created. Got (intentionally masked) " + e.getMessage());
    } finally {
        rwl.readLock().unlock();
    }

    return result;
}

From source file:org.semispace.semimeter.dao.jdbc.SemiMeterDaoJdbc.java

public boolean isAlive() {
    rwl.readLock().lock();//from   w ww .ja  va  2  s  .co  m
    try {
        int result = this.jdbcTemplate.queryForInt("select count(*) from meter where updated < 1");
        if (result >= 0) {
            return true;
        }
    } catch (DataAccessException e) {
        log.warn("Table probably not yet created. Got (intentionally masked) " + e.getMessage());
    } finally {
        rwl.readLock().unlock();
    }
    return false;
}

From source file:com.sfs.whichdoctor.dao.IsbMessageDAOImpl.java

/**
 * Resend outbound ISB messages that have been processed (i.e. sent) to the ISB.
 * The function resets the processed status of the selected ISB messages to false.
 *
 * @param message the IsbMessage containing search parameters (Identifier, Target)
 * @param startDate the start time. If null no messages are resent.
 * @param endDate the end time. If null all messages since the start time are resent.
 *
 * @return the number of records resent/*  ww w  . j  a  va  2  s .co  m*/
 *
 * @throws WhichDoctorDaoException the which doctor dao exception
 */
public final int resend(final IsbMessageBean message, final Date startDate, final Date endDate)
        throws WhichDoctorDaoException {

    int resendCount = 0;

    final StringBuffer resendWhere = new StringBuffer();
    final ArrayList<Object> parameters = new ArrayList<Object>();

    if (message != null) {

        if (StringUtils.isNotBlank(message.getIdentifier())) {
            resendWhere.append(" AND isbmessages.Identifier = ?");
            parameters.add(message.getIdentifier());
        }

        if (StringUtils.isNotBlank(message.getTarget())) {
            resendWhere.append(" AND isbmessages.IsbTarget = ?");
            parameters.add(message.getTarget());
        }
    }

    if (startDate != null) {

        if (endDate != null) {
            resendWhere.append(" AND isbmessages.Created BETWEEN ? AND ?");
            parameters.add(startDate);
            parameters.add(endDate);
        } else {
            resendWhere.append(" AND isbmessages.Created >= ?");
            parameters.add(startDate);
        }

        final String resendSQL = this.getSQL().getValue("isbmessage/resend") + resendWhere.toString();

        dataLogger.debug("Resend SQL: " + resendSQL);

        try {
            resendCount = this.getIsbJdbcTemplate().update(resendSQL, parameters.toArray());

        } catch (DataAccessException de) {
            dataLogger.error("Error resending ISB messages " + message.getId() + ": " + de.getMessage());
            throw new WhichDoctorDaoException("Error resending ISB messages: " + de.getMessage());
        }
    }
    return resendCount;
}