@Override
	@SuppressWarnings("unchecked")
	public List<Mercadoria> getMercadoriasByNome(String nome) throws PersistenceException {
		if (nome == null || nome.isEmpty()) {
			return Collections.EMPTY_LIST;
		}
		
		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		
		try {
			conn = ConnectionManager.getConnection();
			stmt = createStatementWithLog(conn, GET_MERCADORIAS_BY_NOME);
			stmt.setString(1, nome + "%");
			rs = stmt.executeQuery();
			
			return toMercadorias(rs);
		} catch (SQLException e) {
			String errorMsg = "Erro ao consultar mercadorias por nome!";
			log.error(errorMsg, e);
			throw new PersistenceException(errorMsg, e);
		} finally {
			ConnectionManager.closeAll(conn, stmt, rs);
		}
	}